選擇排序—簡單選擇排序

選擇排序的基本設計思想是:每一趟從待排序的記錄中選出關鍵字最小的記錄,按順序放在已排序的記錄序列,直到全部排完爲止。

  • 算法步驟:

初始序列:

無標題.png

(1)、第一趟從arr[1]開始,通過n-1次比較,從n個記錄中選出關鍵字最小的記錄,記爲arr[k],交換arr[1]與arr[k]的位置。


無標題.png

(2)、第二趟從arr[2]開始,通過n-2次比較,從n-1個記錄中選出關鍵字最小的記錄,交換arr[2]與arr[k]

無標題.png

(3)、類此類推,經過n-1趟,排序完成。

  • 算法實現:

public class SelectSort {

   public static    void sort(int [] arr) {

      int k=0;

      int temp=0;

      for(int i=0;i<arr.length-1;i++) {

         k=i;

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

            if(arr[k]>arr[j]) {

                k=j;

            }

         }

         if(k!=i) {

            //交換位置

            temp=arr[i];

            arr[i]=arr[k];

            arr[k]=temp;

         }

      }

   }

   public static void main(String[] args) {

      int [] arr= {56,62,47,21,26,76,11,39,76,18,33};

      System.out.println("排序前:"+Arrays.toString(arr));

      sort(arr);

      System.out.println("排序後:"+Arrays.toString(arr));

   }

}

排序前:[56, 62, 47, 21, 26, 76, 11, 39, 76, 18, 33]

排序後:[11, 18, 21, 26, 33, 39, 47, 56, 62, 76, 76]

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章