一、基本思想
冒泡排序(Bubble Sort)的基本思想就是每次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。
具体步骤:
如果有n个数进行排序(逆序),只需将 n-1个数归位,也就是说要进行n-1 趟操作。
- “每一趟”需要从第 1 位开始进行相邻两个数的比较,将较小的一个数放在后面,比较完毕后向后挪一位继续比较下面两个相邻数的大小;
- 重复此步骤,直到最后一个尚未归位的数,已经归位的数则无需再进行比较。
二、算法实现
public class BubbleSort {
public static void main(String[] args) {
int[] array = { 2, 3, 11,998, 1, 32, 11, 9 };
int[] result = new BubbleSort().sort(array);
for (int i = 0, len = result.length; i < len; i++) {
System.out.print(result[i] + " ");
}
}
public int[] sort(int[] array) {
int n = array.length;
// n个数需要进行n-1趟排序
for (int i = 1; i <= n - 1; i++) {
/**
* 第1趟:操作索引0~n-2,最后n-1索引位置的数归位 </br>
* 第2趟:操作索引0~n-3,最后n-2索引位置的数归位</br>
* 第n-1趟:操作索引0,最后1索引位置的数归位
*/
for (int j = 0; j < n - i; j++) {
if (array[j] < array[j + 1]) {
int tmp = array[j];
array[j] = array[j + 1];
array[j + 1] = tmp;
}
}
}
return array;
}
}
三、性能分析
- 时间复杂度
O(N2)
网友评论