1. 程式人生 > >最易於理解的排序演算法——選擇排序

最易於理解的排序演算法——選擇排序

我在標題中說選擇排序是最易於理解的演算法,下面就來給大家說說為何選擇排序是最易於理解的演算法。

思想: 

               以升序為例,在陣列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]);
		}
	}
}

直至此時,選擇排序講完,其實說選擇排序易於理解,是因為我們在現實生活中要是要排序的話,一般習慣於先找到最小的元素把它排到第一個,之後找到第二個元素排到第二個,以此類推知道排序完成。雖然實際生活中,我們不會將陣列進行交換,但是有很多想法是相同的。所以這是一種很便於理解的演算法