選擇排序 Selection sort

2021-08-29 23:42:01 字數 935 閱讀 8789

選擇排序

複雜度:o(n2)

工作原理

在乙個長度為n的無序陣列中,在第一趟遍歷n個資料,找出其中最小的數值與第乙個元素交換,第二趟遍歷剩下的n-1個資料,找出其中最小的數值與第二個元素交換......第n-1趟遍歷剩下的2個資料,找出其中最小的數值與第n-1個元素交換,至此選擇排序完成。

python**

def select_sort(alist):

n = len(alist)

for i in range(0, n - 1):

# store the smallest number's index

index_min = i

# compared with the remaining numbers

for j in range(i + 1, n):

if alist[index_min] > alist[j]:

index_min = j

alist[index_min], alist[i] = alist[i], alist[index_min]

if __name__ == "__main__":

alist = [54, 26, 93, 17, 77, 31, 44, 55, 20]

select_sort(alist)

print alist

>>>[17, 20, 26, 31, 44, 54, 55, 77, 93]

基礎演算法之選擇排序Selection Sort

原理 首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。一種簡單直觀的排序演算法。例子將陣列 3,6,4,2,5,1 進行從大到小排序 排序步驟 第一趟找到最小數1,放到最前邊...

排序 選擇排序 選擇排序 堆排序

寫在前面 上傳github交換排序選擇排序 堆排序 選擇排序 顧名思義,我們就可以猜到,它是原則合適的元素放到合適的位置 從圖中,我們可以得到 1.用第乙個元素,和其他所有的元素進行比較,找出最小的,然後進行交換 2.然後進行,資料的遞增 3.直到資料全部有序 void selectsort int...

選擇排序 直接選擇排序

演算法思想 在每一趟的排序中,從待排序列中選出關鍵字最小或者最大的元素放在其最終的位置上 過程分析 在第i趟直接排序中,通過n i次關鍵字的比較,從n i 1個元素中選出關鍵字最小的元素 與第i個元素進行交換。經過n 1趟比較,直到表有序為止 效能分析 時間複雜度o n 2 include defi...