冒泡排序算法的原理如下:
-
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
-
针对所有的元素重复以上的步骤,除了最后一个。
-
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
时间复杂度
冒泡排序一共要进行(n-1)次循环,每一次循环都要进行当前n-1次比较
所以一共的比较次数是:
(n-1) + (n-2) + (n-3) + … + 1 = n*(n-1)/2;
所以冒泡排序的时间复杂度是 O(n2)。
代码如下:
public class Bubble_sort {
public static void bubblesort(int[] number) {
for (int i = 0; i < number.length; i++) {
for (int j = number.length-1; j > i ; j--) {
if(number[j]<number[j-1]) {
int temp = number[j];
number[j] = number[j - 1];
number[j - 1] = temp;
}
}
}
}
public static void main(String[] args) {
int number[] = {43, 64, 32, 64, 31, 54, 75};
System.out.println("冒泡排序前:");
System.out.println(Arrays.toString(number));
System.out.println("冒泡排序侯:");
bubblesort(number);
System.out.println(Arrays.toString(number));
}
}
运行结果: