選擇排序 python實現

2021-09-20 13:17:34 字數 792 閱讀 9058

選擇排序,簡單的來說就是在一組無序的列表中,把這組列表中的數看作兩部分(一部分有序的,一部分無序的)。先遍歷一遍,找出最小的那個,然後把它放到最前面,接著再遍歷除了那個最小的數,在剩下的數中,再找出最小的數,放到第二位,依次迴圈,直到列表裡的數字全部排序完畢。

def select_sort(list):

n = len(list)

for i in range(n-1): # 這層迴圈控制遍歷的次數,只要遍歷到倒數第二位就行了

"""這是假設的最小值,只要和後面一次迴圈比,如果比他小的話,就交換位置,直到換出真正小的,然後放到排好序的位置上"""

min_index = i # 最小值索引,從0開始,然後和後面的沒有排序的比較就行了

for j in range(i+1,n): # 這層迴圈就是遍歷剩下的為排序的,所以從i+1開始,也就是排好序的後面一位開始

if list[min_index] > list[j]: # 如果發現後面無序的數字中,有比這個所謂的最小值還小的,則交換位置

min_index = j

list[min_index], list[j] = list[j], list[min_index] # 遍歷完這一趟,得到的最小值,再交換位置

list = [5, 2, 3, 7, 9 ,0]

select_sort(list)

print(list)

選擇排序的最壞時間複雜度和最好時間複雜度都是o(n^2),因為就算是排好序的列表,他也要一次一次比,比完了,放到排好序的位置上,所以最壞和最好都是一樣的。

Python實現選擇排序

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

Python實現選擇排序

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

python實現選擇排序

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