冒泡排序

冒泡排序可以说是入门数据结构与算法比较简单的一种排序方法

冒泡排序不破坏源数据的顺序,具有不变性的特点

效率:

N个数字,进行N+(N-1)+...0次比较

效率较低,O(N*N)

下面给出冒泡排序的java源码




package com.struc.arithmetic;
/**
* @author 鲁志明 E-mail: 13688601037@139.com
* @version 创建时间:2013-5-18 下午8:44:07
* 冒泡算法详解
*/
public class BubbleArithmeticDemo {

//升序 - 先找到最大的 - 大数向后走
public static void sortAsc(int[] array)
{
int outerLength = array.length;
//比较的次数 有N个比较N-1次就能找出最大的那个
for(int number = 0 ; number < outerLength - 1 ; number ++)
{
/**
* 每一趟都拿数组左边的第一个数和与其相邻的数进行比较
* 因为是升序排序,所以每一次都是找到没有排过序的最大的数字
* 找到一个最大的数字之后,下一趟比较就不需要在比较这个最大的数字了
* 所以eachTripNumber < outerLength - number -1 ,因为每找到一个最大的数字,number就++
*
*/
for(int eachTripNumber= 0 ; eachTripNumber < outerLength - number -1 ;eachTripNumber++)
{
/**
* 升序排序
* 前者>后者
* 位置互换
*/
if(array[eachTripNumber] > array[eachTripNumber+1] )
{
int temInt = array[eachTripNumber];
array[eachTripNumber] = array[eachTripNumber+1];
array[eachTripNumber+1] = temInt;
}
}
}
}
public static void main(String[] args) {
int[] demoIntArray = new int[]{2,1,4,7,3,9,8};
sortAsc(demoIntArray);

for(int tem: demoIntArray)
{
System.out.println(tem);
}
}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值