排序演算法之選擇排序

2021-09-25 03:18:00 字數 1225 閱讀 3317

選擇排序:(select sort )是一種簡單直觀的排序方式。其工作原理是:在序列中找到最大(或最小)的元素,存放在序列的起始位置,然後再從剩餘的未排序的序列中繼續尋找最小(或最大)的元素,然後放到已經排序的序列的末尾。重複上述步驟,直到所有的元素排序完畢。

選擇排序的主要的郵電和資料的移動有關。如果某個元素位於正確的最終的位置上,則他不會被移動。選擇排序每次交換一堆元素,他們當中至少有乙個將被移動到最終的位置上,因此對n個元素的表進行排序總共進行排序至多需要(n-1)次交換。

排序過程:

python原始碼:

第一種:

# 選擇排序,迴圈尋找最小值

def selectsort_new(a):

for i in range(len(a)-1):

min_index = i

for j in range(i+1,len(a)):

if a[i] > a[j] :

min_index = j

if min_index != i:

a[i] ,a[min_index] = a[min_index],a[i]

return a

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

ss = selectsort_new(alist)

print(ss) # 結果是:[20, 54, 55, 17, 44, 31, 77, 93, 226]

第二種:

# 選擇排序

def selectsort(a):

if not a or len(a) == 1:

return a

a =

while a:

aa = a.pop(a.index(min(a)))

return a

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

s = selectsort(alist) # 結果為: [17, 20, 31, 44, 54, 55, 77, 93, 226]

排序演算法 排序演算法之選擇排序

最近在學習排序演算法,就排序演算法中的四大經典排序 氣泡排序 快速排序 選擇排序 插入排序。會出一系列的講解排序演算法的部落格。今天繼快速排序之後整理一下選擇排序。選擇排序,就是從一列未排序的陣列中先選出最小 最大 的數,放在陣列的第一位,第一位原來的數字放在最小的原來的位置,再選出第二小的數,放在...

排序演算法之選擇排序 選擇排序 堆排序

直接選擇排序 如下 下面 是一次迴圈同時挑選出最大和最小數,並將其與左右交換 選擇排序 void selectionsort int a,int len swap a min a left 如果最大數的下標在為left,證明要交換的最大數已經被 換到min小標所表示的位置,只需要將right和min...

排序演算法之選擇排序

選擇排序 在乙個長度為n的無序陣列中,在第一趟遍歷n個資料,找出其中最小的數值與第乙個元素交換,第二趟遍歷剩下的n 1個資料,找出其中最小的數值與第二個元素交換.第n 1趟遍歷剩下的2個資料,找出其中最小的數值與第n 1個元素交換,至此選擇排序完成。平均時間複雜度 o n2 空間複雜度 o 1 用於...