前言
网上有很多冒泡排序算法,但大多数都是囫囵吞枣式写法,先将个人对冒泡排序的理解写下,以便后续复习使用
冒泡排序(升序排序)
假设n个数进行排序
每次都对相邻的两数进行比较,总是将大数放在后面,经过一趟排序后可以保证最大的数在最后面,下次排序不对其进行比较
经过n-1趟这样的排序,就可保证所有的数都是有序的
算法设计
外层循环:需要多少趟排序
内层循环:相邻的两数需要从哪到哪进行比较(后面已经有序的数不必进行比较)
算法实现
public static int[] Sort(int[] array) {
int n = array.length;
for (int i = 1; i<=n-1; i++) {
for(int j=0;j<n-i;j++){
if(array[j+1]<array[j]){
int tmp=array[j];
array[j]=array[j+1];
array[j+1]=tmp;
}
}
}
return array;
}