【CSS】clip-path屬性深入理解與使用
阿新 • • 發佈:2020-11-16
1 概念
選擇排序(Selection-sort)是一種簡單直觀的排序演算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。
2 演算法描述
n個記錄的直接選擇排序可經過n-1趟直接選擇排序得到有序結果。具體演算法描述如下:
1. 初始狀態:無序區為R[1..n],有序區為空;
2. 第i趟排序(i=1,2,3…n-1)開始時,當前有序區和無序區分別為R[1..i-1]和R(i..n)。該趟排序從當前無序區中-選出關鍵字最小的記錄 R[k],將它與無序區的第1個記錄R交換,使R[1..i]和R[i+1..n)分別變為記錄個數增加1個的新有序區和記錄個數減少1個的新無序區;
3. n-1趟結束,陣列有序化了。
3 動畫演示
4 程式碼實現
C語言
function selectionSort(arr) { varlen = arr.length; varminIndex, temp; for(vari = 0; i < len - 1; i++) { minIndex = i; for(varj = i + 1; j < len; j++) { if(arr[j] < arr[minIndex]) { // 尋找最小的數 minIndex = j; // 將最小數的索引儲存 } } temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; } returnarr; }
python
def selection_sort(alist):
length = len(alist)
for i in range(length - 1, 0, -1):
for j in range(i):
if alist[j] > alist[i]:
alist[j], alist[i] = alist[i], alist[j]
5 演算法分析
表現最穩定的排序演算法之一,因為無論什麼資料進去都是O(n2)的時間複雜度,所以用到它的時候,資料規模越小越好。唯一的好處可能就是不佔用額外的記憶體空間了吧。理論上講,選擇排序可能也是平時排序一般人想到的最多的排序方法了吧