简而言之就是,从第一个元素开始,相邻的两个元素比较,若后面的元素较小,则交换两个元素,直至都比较完了,就得到一个有序的数组了
- 外循环是遍历每个元素,每次都放置好一个元素
- 内循环是比较相邻的两个元素,把大的元素交换到后面
- 等到第一步中循环好了以后也就说明全部元素排序好了
/**
* 冒泡排序 java
* @param array
* @author liyanan
* @date Aug 24, 2017 3:44:11 PM
*/
public static void bubleSort(int[] array) {
int length = array.length;
for(int i=0; i<length-1; i++) {
for(int j=1; j<length-i; j++) {
if(array[j-1] > array[j]) {
int temp = array[j-1];
array[j-1] = array[j];
array[j] = temp;
}
}
}
}
时间复杂度O(n^2)
空间复杂度O(1)