選擇排序演算法步驟:
找到陣列中最小的那個元素中,
將它和陣列的第乙個元素交換位置,
在剩下的元素中找到最小的元素,將它和陣列的第二個元素交換位置,
如此往復,知道將整個陣列排序。
逐步分析:
假設乙個陣列有 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 是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。選擇排序的主要優點與資料移動有關。如果某...