冒泡排序算法思想
冒泡排序的实现为:两两比较,前者大于后者交换,将最大的放入最后,然后重复这个步骤直到没有任何一对数字需要比较。
冒泡排序算法实现
public static void main(String[] args) {
int[] arr = {3,3,3,3,3,3,4, 3};
int[] insertSort = bubbleSort(arr);
for (int i : insertSort) {
System.out.print(i + " ");
}
}
/**
* 冒泡排序
*
* @param arr
* @return
*/
private static int[] bubbleSort(int[] arr) {
if (arr.length == 0) return null;
for (int i = arr.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
算法复杂度
冒泡排序的最坏时间复杂度O(n^2)
冒泡排序的最好时间复杂度O(n)
冒泡排序的平均时间复杂度O(n^2)
冒泡排序的空间时间复杂度O(1)
算法稳定性
冒泡排序是稳定的
想看完整算法请点击:冒泡排序