選擇排序詳解——java實現

1.概念

選擇排序是一種很容易理解和實現的簡單排序算法。它的原理是:找到數組中最大(或最小)的元素,同該數組第一個(或最後一個)元素進行對換;之後在未完成排序的元素中(從第二個開始以後或者從倒數第二個以前)找到最小的元素,同第二個(或倒數第二個)元素進行對換;之後如上步驟繼續,直至數組長度減一次爲止,完成排序。即每次總是在選擇最小的或最大的元素(取決於你心情,愛咋排咋排),所以叫做選擇排序。

2.實現

採用升序排列,且選擇最小的和前面的元素進行對換
第一趟:

50 ->3<- 22 15 67 76

第一趟排序後數組應該爲以下情況:

->3<- 50 22 15 67 76

第二趟排序玩後數組如下:

3 15 50 22 67 76

3.代碼實現

   /**
     *  選擇排序
     */
    public static void selectionSort(int[] arr){
        int len = arr.length;//數組長度
        int min_index;//記錄最小元素的下標
        int temp;//交換數組元素時使用
        for (int i=0; i<len-1; i++){
            min_index = i;
            for (int j=i+1; j<len; j++){
                if (arr[j]<arr[min_index]){
                    min_index = j;
                }
                if (min_index!=i){
                    temp = arr[min_index];
                    arr[min_index] = arr[i];
                    arr[i] = temp;
                }
            }
        }
    }

菜鳥一個,錯誤之處請多多指正。

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