選擇排序是將陣列從開始按順序找出相應位置上合適的元素,到達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...