1. 程式人生 > >Java陣列3種排序方法

Java陣列3種排序方法

一、陣列封裝好的排序方法         

    public static void main(String[] args) {

        int[] scores = { 30 , 28 , 33 , 47 , 25 ,21, 88 , 96 } ;
        Arrays.sort(scores) ;
        System.out.print("scores = { ");        
        for (int i = 0; i < scores.length; i++) {
            if(i<scores.length-1){
                System.out.print(scores[i] + ",");
            }
            if(i==scores.length-1){
                System.out.print(scores[i] + " }");
            }
        }


    

二、選擇排序       

         選擇排序若小到大排序,最先出現的是陣列的最小元素出現在第一位,整體思想是用陣列的第一個元素開始與陣列的每一個元素依次對比,若第一位大於相比較的元素交換元素位子,第一輪比完最小值出現在第一位,然後用第二位依次與後面的元素對比

如下:         

    public static void main(String[] args) {

        int[] scores = { 30 , 28 , 33 , 47 , 25 ,21, 88 , 96 } ;

        System.out.print("scores = { ");     
        for(int i=0 ; i<scores.length; i++){

               for(int j=i+1 ; j <  scores.length-1   ;  j++){

                       int temp;

                     //利用臨時變數交換元素

                      if( scores[i] >scores[j]) {

                          temp =  scores[i] ;

                          scores[i] = scores[j] ; 

                           scores[j] = temp ;

                      }

                }

              ​​​​​​​   if(i<scores.length-1){
                       System.out.print(scores[i] + ",");
                 }
                if(i==scores.length-1){
                    System.out.print(scores[i] + " }");
                }

 

​​​​​​​        }

​​​​​​​      }

三、氣泡排序   

         氣泡排序,就像水池底部產生氣泡往水面山飄,和相鄰的相比如前面的元素大於後面的元素,交換位置,最大的元素最先出現在最後一位。 程式碼如下:

public static void main(String[] args) {

        int[] scores = { 30 , 28 , 33 , 47 , 25 , 21 , 88 , 96 , 43} ;
        for(int i = 0 ; i<scores.length ; i++){
            for(int j = 0 ; j<scores.length-1 ; j++){
                int temp  ;

                 //利用臨時變數交換元素
                if(scores[j] > scores[j+1]){
                    temp = scores[j] ;
                    scores[j] = scores[j+1] ;
                    scores[j+1] = temp;
                }
            }
  }