冒泡排序
1.基本思想
冒泡排序是一种简单的交换排序方法,其基本思想为:从头扫描待排序列的数据元素序列依次比较相邻两个数据元素的值的大小,从起始值开始,如果前面的数据元素的值,大于相邻后面数据元素的值,则交换它们的位置,逐步将待排序列变成有序序列。
2.思路方法
对长度为length的数组进行冒泡排序时,总共需要进行length-1轮。第一轮需要比较length-1次,第2轮需要比较length-2次,最后一轮需要比较length-i次。
第一轮,排序见下图:
第二轮到最后一轮,方法同第一轮方法相同,从头开始依次比较相邻数据元素值的大小,前大于后两数据元素值交换,后大于前则不动,继续向后进行对比,直到本轮所有数据元素对比完,再进行下一轮。
3.代码实现
public class bubbleSort {
public static void main(String args[]) {
int[] arr = { 3, 1, 6, 2, 9, 0, 7, 4, 5, 8 };
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length -i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
System.out.println("第"+(i+1)+"轮:"+Arrays.toString(arr));
}
System.out.print("冒泡排序后得:");
System.out.println(); for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
}
}
运行结果:
第1轮:[1, 3, 2, 6, 0, 7, 4, 5, 8, 9]
第2轮:[1, 2, 3, 0, 6, 4, 5, 7, 8, 9]
第3轮:[1, 2, 0, 3, 4, 5, 6, 7, 8, 9]
第4轮:[1, 0, 2, 3, 4, 5, 6, 7, 8, 9]
第5轮:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
第6轮:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
第7轮:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
第8轮:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
第9轮:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
冒泡排序后得:
0 1 2 3 4 5 6 7 8 9
PS:有什么不对的地方还望大家批评指正,或者有什么意见建议大家也可以提出来一起讨论。
来源:CSDN
作者:猿呆马
链接:https://blog.csdn.net/qq_45946710/article/details/103463817