冒泡排序:
/**
* N個數字要完成排序,總共進行N-1趟排序,每i趟排序次數為(N-1)次,所以可以用双重循环语句,外层控制循环多少趟,内层控制每一趟的循环次数。
*
* @author Memorial
*
*/
public class BubbleSort {
public static void main(String[] args) {
int a[] = { 25,354,6,7,78,456,5,234,67,443,423,452 };
for (int i = 0; i < a.length - 1; i++) {// 外層循環控制排序趟數
for (int j = 0; j < a.length - i - 1; j++) {
// 內層循環控制每一趟排序多少次
// 把小的值交換到前面
if (a[j] > a[j + 1]) {
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
System.out.print("第" + (i + 1) + "次排序結果:");
// 列舉每次排序的數據
for (int x = 0; x < a.length; x++) {
System.out.print(a[x] + "t");
}
System.out.println(" ");
}
System.out.print("最終排序結果: ");
for (int x = 0; x < a.length; x++) {
System.out.print(a[x] + "t");
}
}
}
输出:
第1次排序結果:25 6 7 78 354 5 234 67 443 423 452 456
第2次排序結果:6 7 25 78 5 234 67 354 423 443 452 456
第3次排序結果:6 7 25 5 78 67 234 354 423 443 452 456
第4次排序結果:6 7 5 25 67 78 234 354 423 443 452 456
第5次排序結果:6 5 7 25 67 78 234 354 423 443 452 456
第6次排序結果:5 6 7 25 67 78 234 354 423 443 452 456
第7次排序結果:5 6 7 25 67 78 234 354 423 443 452 456
第8次排序結果:5 6 7 25 67 78 234 354 423 443 452 456
第9次排序結果:5 6 7 25 67 78 234 354 423 443 452 456
第10次排序結果:5 6 7 25 67 78 234 354 423 443 452 456
第11次排序結果:5 6 7 25 67 78 234 354 423 443 452 456
最終排序結果: 5 6 7 25 67 78 234 354 423 443 452 456