python算法入门
生活随笔
收集整理的這篇文章主要介紹了
python算法入门
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
1.算法簡介:
2. 時間復雜度
2.1 算法復雜度的判斷?
?3. 空間復雜度
?4. 遞歸
4.1 遞歸實例-漢諾塔問題
?5. 列表查找問題
5.1 順序查找
??
5.2? 二分查找
?
1.算法簡介:
2. 時間復雜度
?
?
?
2.1 算法復雜度的判斷?
?
?
?3. 空間復雜度
?4. 遞歸
?
??
4.1 遞歸實例-漢諾塔問題
?
?
def hanoi(n,a,b,c): # 程序目的:將n個盤子從a經過b,移動到cif n > 0:hanoi(n-1,a,c,b) # 若盤子大于n,則將上面n-1個盤子看成整體,從按a,c,b移到b(但這里移動了n-1個,是違規的,故不打印)print("合法實現,將盤子從 %s 移動到 %s"%(a,c)) # 這一步就是打印移動第n個盤子的步驟hanoi(n-1,b,a,c) # step3: 將n-1 個盤子按b,a,c移動到c hanoi(3,'A','B','C')?
?5. 列表查找問題
5.1 順序查找
?
?
?
def number_search(data_set,value): #value 表示被查找的值for i in range(len(data_set)):#for i,v in enumerate(data_set):if data_set[i] == value:return '這個數在列表中index為: %s'%(i)else:return '列表中沒有這個數'if __name__ == '__main__':list = [1,2,3,4,5,6,7,8,9,10]print(number_search(list,10)) # 在list列表中查詢是否有10這個數print(number_search(list, 11)) #在list列表中查詢是否有11這個數?
?
5.2? 二分查找
#二分法查找 def ErFeng(list,value):left = 0 #左邊第一個數的索引right = len(list)-1 #右邊第一個數的索引while left <= right: #說明list列表中是有值的,可在list中尋找mid = (left+right) // 2 #二分if list[mid] == value: #中間的值剛好是要找的數return '您要查找的數在該列表索引為%s的位置'%(mid)elif list[mid] > value: #待查找的值在mid左邊right = mid - 1else:left = mid + 1else:return "該列表中沒有你要尋找的數"if __name__ == '__main__':list_data = [1,2,3,4,5,6,7,8,9,10,11,12]print(ErFeng(list_data,11))?
?
?
總結
以上是生活随笔為你收集整理的python算法入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sqlite3数据库使用
- 下一篇: 数据结构带头结点单向不循环链表(C语言版