選擇排序(Selection Sort)是一種簡單直觀的排序演算法,其演算法原理為首先在未排序的序列中找到最小(大)的元素,存放到排序序列的起始位置,然後再從剩餘未排序的元素中繼續尋找最小(大)的元素,存放到已排序序列的末尾,以此類推,直到所有元素均排序完成。
選擇排序一共有「數組數-1」輪排序,每一輪排序又是一個循環,循環的規則如下:
1)先假定當前這輪循環的第一個數是最小數。
2)然後和後面每個數進行比較,如果發現有比當前數更小的數,則重新確定最小數,並得到下標。
3)遍歷到陣列的最後時,就得到本輪最小的數。
4)和目前循環的第一個數進行交換。
例如:
importjava.util.Arrays;publicclassMain{publicstaticvoidmain(String[]args){int[]arr=newint[]{19,26,8,35,41,77};for (inti=0;i<arr.length-1;i++){//每次循環都會找出最小的數intminIndex=i;//記錄最小數的下標intminNum=arr[i];//記錄最小數for(intj=i+1;j<arr.leng th;j++){//每次循環都會找出最小的數if(arr[j]<minNum){//如果當前數比最小數小,則更新最小數minNum=arr[j];//更新最小數minIndex=j;//更新最小數的下標}}arr[minInd ex]=arr[i];//將最小數放到最前面arr[i]=minNum;//將標誌位放到最小數原來所在的位置}for(inti=0;i<arr.length; i++){System.out.println(arr[i]);}}}}
運行結果如下:
81926354177