每次取一个数与后面的数据进行两两比较,将数据小的放在前面。
public class 冒泡排序 { public static void main(String[] args) { int[] a = { 856, 7, 5, 6, 4, 2, 89, 125, 456, 963, 564, 4589, 3214, 6596 }; sort(a); print(a); } // 输出数组 public static void print(int[] temp) { for (int x = 0; x < temp.length; x++) { System.out.print(temp[x] + " "); } } // 冒泡排序 public static void sort(int[] temp) { for (int n = 0; n < temp.length - 1; n++) {// 控制次数,n个数比n-1次 for (int m = 0; m < temp.length - 1; m++) { if (temp[m] > temp[m + 1]) { int a = temp[m]; temp[m] = temp[m + 1]; temp[m + 1] = a; } } } } }
在排序的算法中,因为不知道第一个是否比第二个数大,比如85,96,9.这种序列下,第一次排序后是85,9,6.第一个数是不是最小的,所以第二次排序的时候,还是要从地第一个数开始,所以每次比较次数是数组长度-1
冒泡排序的趟数默认每个数都能全部比较一次,所以趟数是数组长度-1.