用Python 學習資料結構與演算法 三 選擇排序

2021-07-16 11:00:39 字數 690 閱讀 6110

選擇排序是將陣列從開始按順序找出相應位置上合適的元素,到達n位置時則不用再尋找該位置元素,因為這時所有元素已經就位。

上**:

#coding=utf-8

defselectsort

(array):

i = 0

#只用選n-1個數進行排序,因為選到最後第n個數是不用排序的

for x in range(0, len(array) - 1):

#最小值引索

minindex = none

for j in range(x, len(array)):

#尋找當前所需最小值引索

if minindex == none:

minindex = j

continue

if array[minindex] > array[j]:

minindex = j

#交換值

if minindex != x:

array[minindex], array[x] = array[x], array[minindex]

a = [5, 2, 4, 6, 1, 3]

selectsort(a)

print(a)

輸出結果:

[1, 2, 3, 4, 5, 6]

用python學習資料結構與演算法 堆疊

堆疊 堆疊 stack 是一種後進先出 lifo 的線性資料結構,對堆疊的插入和刪除操作都只能在棧頂 top 進行。棧和佇列主要用於計算過程中儲存臨時資料。堆疊 adt 抽象資料型別 一般提供以下介面 stack 建立堆疊 push item 向棧頂插入項 pop 返回棧頂的項,並從堆疊中刪除該項 ...

用Python 學習資料結構與演算法 四 歸併排序

歸併排序主要的過程是將大陣列拆分為小陣列,再將小陣列問題解決,然後歸併處理組成新無問題的陣列再次歸併。上 coding utf 8 歸併運算 array 陣列 lpos 左座標 mpos 中座標 rpos 右座標 defmerge array,lpos,mpos,rpos 切片左右陣列 leftar...

用Python 學習資料結構與演算法 六 最大子串行

實現最大子串行,其主要需要注意的是 連續 一詞。然而我在檢視 演算法導論 書本時,發現 本身無問題,同樣的遞迴 在c 中是可以正常執行的,在python當中卻無法正常執行,需要新增哨兵才可以正常的使用。注 本身無問題 上 coding utf 8 class infotype def init se...