您的位置:首页 > 编程语言 > Java开发

java排序算法之冒泡排序

2012-04-16 10:08 253 查看
1、循环趟数

2、每趟比较元素发生变化,与条件一有关

3、前两点把握正确,忽略第三点,算法终止条件及其优化,当不发生交换时,算法终止

代码如下:

package althorgrim;

/**
* 冒泡排序
* @author hanrk-2734
*
*/
public class TestBubble {

//注意算法的终止条件,优化终止条件,可以提供算法效率,此算法没有考虑到没有发生比较时,便停止排序
public static void bubleSort(int a[]) {

boolean flag=true;

for (int i = 0; i < a.length - 1&&flag; i++) {
flag=false;
for (int j = 0; j < a.length-1 - i; j += 1) {

if (a[j] > a[j + 1]) {
swap(a, j, j+1);
//每趟发生交换才进行下一趟排序,所以标示
flag=true;
}

}

}
}

private static void swap(int[] number, int i, int j) {
int t;
t = number[i];
number[i] = number[j];
number[j] = t;
}

public static void main(String[] args) {
int[] a = new int[] {26, 3, 42, 13, 8, 0, 122 };
bubleSort(a);
for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: