打基础,冒泡排序

来源:互联网 发布:淘宝上买得到冰毒吗 编辑:程序博客网 时间:2024/05/22 07:59

冒泡排序算法的运作如下:
  1. 1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。
    2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
    3.针对所有的元素重复以上的步骤,除了最后一个。
    4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
不知道大家有玩LOL的没,上次OGN夏季赛SKT硬是从第五打到第二,就是冒泡的赛制,顺便为LPL加一波油。

回正题,对于冒泡排序,如果一组数据刚好是正序,是最好的情况,就只用排一趟序,一趟要进行n-1次排序,时间复杂度就是O(n)了;反之,最坏的情况即刚好是逆序的时候,第一趟要排n-1次,第二趟排n-2次……以此类推,总共要排1+2+3+……+n-1,即n(n-1)/2次,时间复杂度是O(n*n),所以平均时间复杂度也是O(n*n)

        用java实现冒泡排序:

package 冒泡排序;public class BubbleSort {public static void main(String[] args) {int[] array = {78,34,12,64,5,4,62,99,98,54,56,17,18,23,51};bubbleSort(array);}public static void bubbleSort(int[] n){int temp = 0;for(int i=0;i<n.length-1;i++)for(int j=i+1;j<n.length;j++){if(n[i]>n[j]){temp = n[j];n[j] = n[i];n[i] = temp;}}for(int i=0;i<n.length;i++){System.out.println(n[i]);}}}