最易於理解的排序演算法——選擇排序
阿新 • • 發佈:2018-12-10
我在標題中說選擇排序是最易於理解的演算法,下面就來給大家說說為何選擇排序是最易於理解的演算法。
思想:
以升序為例,在陣列arr中遍歷陣列找到其中最小的那個元素,將其與arr[0]交換,之後在剩餘的陣列中,在尋找最小的元素,將其與arr[1]交換,以此重複直到陣列中的每個元素都被排序。
以此為思想,我們就可以進行編碼:
package work.soft.sort; public class ChooseSort { public static void main(String args[]) { int [] arr = {15,87,45,35,47,2,8,4,226,147,246,342,46}; int min=0; int save = 0; for(int i = 0;i<arr.length;i++) { min = i;//假設本次迴圈的元素既是最小, for(int j =i;j<arr.length;j++) { //迴圈遍歷陣列,若是存在比原用於比較的元素小的元素則將其下標賦予min if(arr[j] <= arr[min]) { min = j; } } //內層迴圈結束之後,將比較的結果進行交換既將最小元素換到對應的第i個位置 save = arr[i]; arr[i] = arr[min]; arr[min] = save; } //遍歷輸出陣列元素 for(int i = 0;i<arr.length;i++) { System.out.println(arr[i]); } } }
直至此時,選擇排序講完,其實說選擇排序易於理解,是因為我們在現實生活中要是要排序的話,一般習慣於先找到最小的元素把它排到第一個,之後找到第二個元素排到第二個,以此類推知道排序完成。雖然實際生活中,我們不會將陣列進行交換,但是有很多想法是相同的。所以這是一種很便於理解的演算法