首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。
再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。
重複第二步,直到所有元素均排序完畢。
1function
selectionsort(arr) 10}
11 temp =arr[i];
12 arr[i] =arr[minindex];
13 arr[minindex] =temp;14}
15return
arr;
16 }
1defselectionsort(arr):
2for i in range(len(arr) - 1):3#
記錄最小數的索引
4 minindex =i
5for j in range(i + 1, len(arr)):
6if arr[j] 7 minindex =j8#
i 不是最小數時,將 i 和最小數進行交換
9if i !=minindex:
10 arr[i], arr[minindex] =arr[minindex], arr[i]
11return arr
1void swap(int *a,int *b) //
交換兩個變數27
void selection_sort(int arr, int
len)
819 }
1 template//整數或浮點數皆可使用,若要使用物件(class)時必須設定大於(>)的運運算元功能
2void selection_sort(std::vector&arr)
10 }
十大經典排序演算法之 選擇排序
選擇排序的工作原理簡單直觀,和氣泡排序也有異曲同工之處,它將需要排序的陣列分為有序區和無序區,首先在無序區選出最小的數,放到有序區的末尾 有序區為從小到大排序好的陣列,因此此時從無序區選出的最小的數一定大於有序區中最大的數 以此類推,直到陣列有序。時間複雜度 平均 時間複雜度 最壞 時間複雜度 最好...
十大經典排序演算法 2 選擇排序
選擇排序 選擇排序是一種簡單直觀的排序演算法,用到它的時候,資料規模越小越好。唯一的好處可能就是不占用額外的記憶體空間了吧。演算法步驟 演示 實現 function selectionsort arr temp arr i arr i arr minindex arr minindex temp r...
十大經典排序演算法
載自 排序演算法是 資料結構與演算法 中最基本的演算法之一。排序演算法可以分為內部排序和外部排序,內部排序是資料記錄在記憶體中進行排序,而外部排序是因排序的資料很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。常見的內部排序演算法有 插入排序 希爾排序 選擇排序 氣泡排序 歸併排序 快速排...