選擇排序(selection sort)是一種簡單直觀的排序演算法。
首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,知道所有元素均排序完畢。
選擇排序的主要優點與資料移動有關。如果某個元素位於正確的最終位置上,則它不會被移動。
選擇排序每次交換一對元素,他們當中至少有乙個將被移動到其最終位置上,因此對n個元素的表進行排序總共進行至多n-1次交換。在所有的完全依靠交換去移動元素的排序方法中,選擇排序屬於非常好的一種。
選擇排序,從頭至尾掃瞄序列,找出最小的乙個元素,和第乙個元素交換,接著從剩下的元素中繼續這種選擇和交換方式,最終得到乙個有序序列。
**如下:
def
select_sort
(alist)
: n =
len(alist)
for j in
range
(n-1):
#迴圈次數,迴圈n-1次
min_index = j
for i in
range
(j+1
,n):
#從頭(j)開始遍歷,找到最小值
if alist[min_index]
> alist[i]
: min_index = i
#迴圈遍歷完,min_index為最小值的下標!
alist[min_index]
, alist[j]
= alist[j]
, alist[min_index]
#將每次遍歷的最小值,依照j的遍歷依次填充到列表中
if __name__ ==
'__main__'
:list=[
23,44,
30,24,
6,3,
9,7,
66]select_sort(
list
)print
(list
)
執行結果如下:
[3,
6,7,
9,23,
24,30,
44,66]
Python實現選擇排序
選擇排序 一種簡單直觀的排序演算法。工作原理 首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘的未排序的元素中繼續尋找最小 大 元素,然後放到已排序的末尾。直到所有元素均排序完畢。優點 選擇排序與資料移動有關。如果某個元素位於正確的最終位置上,則它不會被移動。選擇排序每...
Python實現選擇排序
實現思路 將乙個序列分為兩部分,前面是有序序列,後面是無序序列,不斷的將後面的無序序列中的最小值新增到前面的有序序列中,直到後面的無序序列中沒有值,開始的時候將第乙個值作為有序序列。實現 arr 7,4,3,67,34,1,8 length 7 defselect sort arr n len ar...
python實現選擇排序
選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。選擇排序的主要優點與資料移動有關。如果某...