Python 實現選擇排序

2022-01-12 07:39:05 字數 1097 閱讀 8331

選擇排序演算法步驟:

找到陣列中最小的那個元素中,

將它和陣列的第乙個元素交換位置,

在剩下的元素中找到最小的元素,將它和陣列的第二個元素交換位置,

如此往復,知道將整個陣列排序。

逐步分析:

假設乙個陣列有 6 個元素,

[5, 1, 4, 3, 2, 6]

第 1 個元素為 5,與剩餘 5 個元素相比,1 是最小的元素,所以 5 和 1 交換位置,

[1, 5, 4, 3, 2, 6]

第 2 個元素為 5,與剩餘 4 個元素相比, 2 是最小的元素,所以 5 和 2 交換位置,

[1, 2, 4, 3, 5, 6]

第 3 個元素為 4,與剩餘 3 個元素相比, 3 是最小的元素,所以 4 和 3 交換位置,

[1, 2, 3, 4, 5, 6]

不斷重複直到排好序。

def

select_sort

(arr)

:# 索引從 0 到 n-2

for i in

range

(len

(arr)-1

):# 最小元素的索引

min= i

# min 與從 i+1 到 n-1 的元素比較

j = i +

1while j <

len(arr)

:if arr[

min]

> arr[j]

:# 找到最小的元素

min= j

j +=

1# 交換位置

arr[i]

, arr[

min]

= arr[

min]

, arr[i]

a =[5,

1,4,

3,2,

6]select_sort(a)

print

(a)

穩定性:不穩定

複雜度:

平均 o(n^2)

最壞 o(n^2)

最好 o(n^2)

Python實現選擇排序

選擇排序 一種簡單直觀的排序演算法。工作原理 首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘的未排序的元素中繼續尋找最小 大 元素,然後放到已排序的末尾。直到所有元素均排序完畢。優點 選擇排序與資料移動有關。如果某個元素位於正確的最終位置上,則它不會被移動。選擇排序每...

Python實現選擇排序

實現思路 將乙個序列分為兩部分,前面是有序序列,後面是無序序列,不斷的將後面的無序序列中的最小值新增到前面的有序序列中,直到後面的無序序列中沒有值,開始的時候將第乙個值作為有序序列。實現 arr 7,4,3,67,34,1,8 length 7 defselect sort arr n len ar...

python實現選擇排序

選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。選擇排序的主要優點與資料移動有關。如果某...