您的位置:首页 > 其它

冒泡排序

2016-04-07 23:57 288 查看
思想比较简单一直循环,每次把最小的元素冒泡到最后。(最差情况:循环n-1次,每次两两交换n次)
<span style="white-space:pre">	</span>private static void bubbleSort2(int a[]) {
a = getAry(a);
boolean flag = true;
Arrays.sort(a);
System.out.println(convertAry(a));
while (flag) {
flag = false;
for (int j = 0; j < a.length - 1; j++) {
if (a[j] > a[j + 1]) {
flag = true;
a[j] = a[j] ^ a[j + 1];// 按位异或
a[j + 1] = a[j] ^ a[j + 1];
a[j] = a[j] ^ a[j + 1];
}
}
System.out.println("第" + "" + "次: " + convertAry(a));
}
}
sort before
[12, 4, 5, 4, 13, 10, 10, 11, 8, 10]
第1次: [12, 5, 4, 13, 10, 10, 11, 8, 10, 4]
第2次: [12, 5, 13, 10, 10, 11, 8, 10, 4, 4]
第3次: [12, 13, 10, 10, 11, 8, 10, 5, 4, 4]
第4次: [13, 12, 10, 11, 10, 10, 8, 5, 4, 4]
第5次: [13, 12, 11, 10, 10, 10, 8, 5, 4, 4]
第6次: [13, 12, 11, 10, 10, 10, 8, 5, 4, 4]
第7次: [13, 12, 11, 10, 10, 10, 8, 5, 4, 4]
第8次: [13, 12, 11, 10, 10, 10, 8, 5, 4, 4]
第9次: [13, 12, 11, 10, 10, 10, 8, 5, 4, 4]

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: