JAVA選擇排序SelectSort
阿新 • • 發佈:2018-12-22
選擇排序的思想很簡單,首先假設陣列中的最小值在第0位,找到真的最小值後和第0位上的數交換,真最小值獲得下標[0];同理,假設陣列中的次小值在第1位,找到真的次小值後和第1位上的數交換,真次小值獲得下標[1]……直到遍歷陣列中的所有位置~JAVA實現程式碼如下:
/**
* @ Author :JiaoLi
* @ Date :Created in 14:42 2018/11/17
* @ Description:選擇排序
* @ Modified By:
* @Version: 0.0
*/
public class SelectSort {
public static void main(String[] args) {
int[] arr = {10,11,9,8,6};
selectSort(arr);
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
public static void selectSort(int[] arr){
int minIndex = 0;
for(int i=0;i<arr.length-1;i++){
minIndex = i;
for(int j=i+1;j<arr.length;j++){
if(arr[j]<arr[minIndex]){
minIndex = j;
}
}
if(i!=minIndex){
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
}
}
輸出結果:
6 8 9 10 11
Tips:判斷最小值時候的語句if(arr[j]<arr[minIndex]){minIndex = j;}會將找到的最小值下標儲存在minIndex中,直到遍歷結束後與i進行交換~