冒泡排序

最近学习算法,从一些经典的排序算法开始。

这篇讲的是我对冒泡排序的一些心得

来源百度百科:

冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。

思路:

​ 两两交换,大的放在后面。第一次排序之后最大值在数组末尾

​ 因为是两两交换,所以排序次数为n-1,比如10个数,需要9趟排序

​ 每趟过后,比较次数减1

代码实现思路:

​ 双重for循环,外层循环控制排序的趟数,内层循环控制比较的次数

1
2
3
4
5
6
7
8
9
10
11
12
13
//冒泡排序
public static void bubbleSort(int[] array){
int temp ;//中间变量
for(int i=0;i<array.length-1;i++){//外层循环控制排序趟数
for(int j=0;j<array.length-1-i;j++){//内层循环控制比较次数,每趟过后次数减一
if(array[j]>array[j+1]){//两两交换,大的放后面
temp=array[j+1];
array[j+1]=array[j];
array[j]=temp;
}
}
}
}

参考资料:

[]: https://segmentfault.com/a/1190000014008568