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;
}
}
}
}
菜鳥一個,錯誤之處請多多指正。