冒泡排序
方法:
- 对数组中的各数据,依次比较相邻的两个元素的大小。
- 如果前面的数据大于后面的数据,就交换这两个数据。经过第一轮的多次比较排序后,可将最小的数据排好。
- 再用同样的方法把剩下的数据逐个比较,最后便可按照从小到达的顺序排好各数据。
public class P4_1 {
static final int SIZE = 10;
public static void bubbleSort(int[] a){
int temp;
for (int i = 1; i < a.length; i++) {
for (int j = 0; j < a.length - i; j++) {
if (a[j] > a[j+1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
System.out.print("第"+i+"步排序结果");
for (int k = 0; k < a.length; k++) {
System.out.print(" "+a[k]);
}
System.out.println();
}
}
public static void main(String[] args) {
int[] shuzu = new int[SIZE];
for (int i = 0; i < SIZE; i++) {
shuzu[i] = (int)(100 + Math.random()*(100+1));
}
//
System.out.println("排序前数组为:");
for (int i = 0; i < shuzu.length; i++) {
System.out.print(" "+ shuzu[i]);
}
//
System.out.println();
bubbleSort(shuzu);
System.out.println("排序后数组为:");
for (int i = 0; i < shuzu.length; i++) {
System.out.print(" "+ shuzu[i]);
}
}
}
运行结果:
排序前数组为:
199 112 108 152 153 134 159 185 140 179
第1步排序结果 112 108 152 153 134 159 185 140 179 199
第2步排序结果 108 112 152 134 153 159 140 179 185 199
第3步排序结果 108 112 134 152 153 140 159 179 185 199
第4步排序结果 108 112 134 152 140 153 159 179 185 199
第5步排序结果 108 112 134 140 152 153 159 179 185 199
第6步排序结果 108 112 134 140 152 153 159 179 185 199
第7步排序结果 108 112 134 140 152 153 159 179 185 199
第8步排序结果 108 112 134 140 152 153 159 179 185 199
第9步排序结果 108 112 134 140 152 153 159 179 185 199
排序后数组为:
108 112 134 140 152 153 159 179 185 199
Process finished with exit code 0