在排序中,可能大家最先接觸也最容易想到的應該是氣泡排序或者選擇排序,然而在演算法導論一書中卻是從插入排序開始討論,其實現思路類似於整理紙牌的過程。從一堆牌中選擇第一張拿在手中,然後每拿一張牌均在手中找到這張牌應該放在的位置,這樣當取完了全部的紙牌,手中的紙牌就是有序的了。
def insertion_sort(a):
for j in range(1,len(a)):
key = a[j]
i = j - 1
while i>=0 and a[i]>key:
a[i+1] = a[i]
i = i - 1
a[i+1] = key
a = [5,2,4,6,1,3]
insertion_sort(a)
print(a)
執行結果:
Python查詢演算法之插補查詢演算法的實現
插補查詢演算法又稱為插值查詢,它是折半查詢演算法的改進版。插補查詢是按照資料的分布,利用公式 鍵值所在的位置,快速縮小鍵值所在序列的範圍,慢慢逼近,直到查詢到資料為止。根據描述來看,插值查詢類似於平常查英文本典的方法。例如,在查乙個以字母 d 開頭的英文單詞時,決不會用折半查詢法。根據英文詞典的查詢...
Python 實現牛頓插值演算法
匯入標頭檔案 import matplotlib.pyplot as plt from pylab import mpl import numpy as np import pandas as pd import math matplotlib inline 得到差商表函式 def get diff...
python實現演算法導論 鍊錶
1.雙向鍊錶 無哨兵 linked list鍊錶 class linked list object def init self self.head none insert方法將obj連線到鍊錶前端 definsert self,obj if isinstance obj,list obj obj.n...