實現思路:將乙個序列分為兩部分,前面是有序序列,後面是無序序列,不斷的將後面的無序序列中的最小值新增到前面的有序序列中,直到後面的無序序列中沒有值,開始的時候將第乙個值作為有序序列。
**實現:
arr = [7, 4, 3, 67, 34, 1, 8] # length = 7
defselect_sort
(arr):
n = len(arr)
for j in range(n-1):
min = j
for i in range(j+1, n):
if arr[min] > arr[i]:
min = i
arr[min], arr[j] = arr[j], arr[min]
select_sort(arr)
print(arr) # [1, 3, 4, 7, 8, 34, 67]
關鍵點還是雙重迴圈中引數的配置,在外層迴圈中我們獲取乙個0~n-1之間的序列,之後沒玄幻一次內部迴圈中的i的起始值就會加1,直到j+1=n-1的時候迴圈結束,因為最後乙個數的時候就不需要比較了,還有就是交換最小值位置的時候,要放在內層迴圈結束後進行。
時間複雜度:o(n^2)
Python實現選擇排序
選擇排序 一種簡單直觀的排序演算法。工作原理 首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘的未排序的元素中繼續尋找最小 大 元素,然後放到已排序的末尾。直到所有元素均排序完畢。優點 選擇排序與資料移動有關。如果某個元素位於正確的最終位置上,則它不會被移動。選擇排序每...
python實現選擇排序
選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。選擇排序的主要優點與資料移動有關。如果某...
選擇排序python實現
選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理是每一次從待排序的資料元素中選出最小 或最大 的乙個元素,存放在序列的起始位置,直到全部待排序的資料元素排完。注意每次查詢到最小值之後要將之從原列表中彈出,避免重複查詢。1 deffindsmallest d 2 sma...