冒泡排序最慢的算法,长度为N的数组,第一次排序N-1次,第二次从第二位开始排序N-2次,两个for循环算法如下:
public static void main(String[] args) {
int[] Array = { 5, 987, 10, 6, 8, 6, 0, 1 };
SortArray(Array);
}
static void SortArray(int[] Array) {
int a = Array[0];
for (int i = 0; i < Array.length - 1; i++) {
for (int j = i + 1; j <= Array.length - 1; j++) {
if (Array[i] > Array[j]) {
a = Array[j];
Array[j] = Array[i];
Array[i] = a;
}
}
System.out.print("第"+(i+1)+"次排序结果:");
for (int k = 0; k <= Array.length - 1; k++) {
System.out.print(Array[k] + ",");
}
System.out.println();
}
System.out.print("The result is ");
for (int i = 0; i <= Array.length - 1; i++) {
System.out.print(Array[i] + ",");
}
}
执行结果:
第1次排序结果:0,987,10,6,8,6,5,1,
第2次排序结果:0,1,987,10,8,6,6,5,
第3次排序结果:0,1,5,987,10,8,6,6,
第4次排序结果:0,1,5,6,987,10,8,6,
第5次排序结果:0,1,5,6,6,987,10,8,
第6次排序结果:0,1,5,6,6,8,987,10,
第7次排序结果:0,1,5,6,6,8,10,987,
The result is 0,1,5,6,6,8,10,987,