冒泡排序的实现方法(Java)

来源:互联网 发布:会计报表软件 编辑:程序博客网 时间:2024/06/06 08:31

  冒泡排序,从字面上的意思就能看出来,就想空气从水底冒出来一样。在排序中,这个往上冒的过程可以分成两种,第一是大的数字网上冒(结果为升序,判断的时候用>),第二就是小的数字往上冒(结果为降序,判断的时候用<)。下面给出几种实现方法:

1.0 简单粗暴型的双循环

    public static void bubbleSortWithDoubleFor(int[] array){        for(int i = 0 ; i<array.length-1;i++){            for(int j = 0 ; j <array.length-1-i;j++){                int temp=array[j];                if(array[j]>array[j+1]){                    array[j]=array[j+1];                    array[j+1]=temp;                }else{                    continue;                }            }        }    }
2.0 采用while的形式

    public static void bubbleSortWithWhile(int[] array){        boolean ifChange;        do{            ifChange=false;            for(int i = 0 ; i < array.length-1;i++){                if(array[i]>array[i+1]){                    int temp=array[i+1];                    array[i+1]=array[i];                    array[i]=temp;                    ifChange=true;                }            }        }while(ifChange);    }
3.0 递归调用的形式

    public static void bubbleSort(int[] array) {        boolean isSorted = false;        for (int i = 0; i < array.length - 1; i++) {            if (array[i]>array[i + 1]) {                int temp=array[i+1];                array[i+1]=array[i];                array[i]=temp;                isSorted = true;            }        }        if (!isSorted) {            return;        }        bubbleSort(array);    }

其实冒泡排序无论用何种方法实现,中心思想就是把大或者小的数往一头赶,然后得出排序的结果。时间复杂度上,当整个数组都是反序的,那么要改变n*(n-1)/2 也就是说最坏为n的平方。







原创粉丝点击