選擇排序(Python實現)

2021-10-06 12:00:00 字數 1152 閱讀 1277

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