1. 程式人生 > 其它 >演算法圖解筆記--排序演算法

演算法圖解筆記--排序演算法

技術標籤:學習筆記演算法列表

分別定義最小值函式和排序函式

'''先定義一個找最小值的函式'''
def findmin(list):
    smallvalue=list[0]#儲存最小值(暫定為第一個元素)
    smallvalue_index=0#儲存最小值索引(暫定為第一個元素的索引)
    for i in range(1,len(list)):#遍歷從1到列表元素個數的列表
        if list[i]<smallvalue:#若暫時的最小值大於第i位元素
            smallvalue=list[i]#則分別將第i位的值和索引由暫定最小值取代
smallvalue_index=i return smallvalue_index#遍歷完成後暫定最小值即為最終最小值(返回值為最小值的索引而不是值) print(findmin([8,6,9,10]))#測試結果 def sort(list):#定義從小到大排序函式 newlist=[]#創造一個空列表用於儲存過程及最終排序完成的列表 for i in range(len(list)):#遍歷次數為列表元素的個數 min=findmin(list)#呼叫最小值函式,將最小值的索引賦給min newlist.append(
list.pop(min))#list.pop方法是給定一個index刪除對應的vaule,並返回被刪除的value,由.appen方法在newlist列表末尾依次加入最小值 return newlist print(sort([1,9,7,55,12,10]))##驗證無誤

在newlist.append(list.pop(min))處糾結了很久,因為沒有很牢固的記憶pop的用法,以為返回值是刪掉值之後的列表,警示自己和提醒他人不要犯這樣的錯誤