直接插入排序是一種最簡單的排序方法,它的基本操作是將乙個記錄插入到已排好序的有序表中,從而得到乙個新的、記錄數增1的有序表。
def insertsort(l = none):
j = 0
x = 0
for i in range(1, len(l)):
if l[i] < l[i-1]:
x = l[i]
l[i] = l[i-1]
for j in range(i-2, -2, -1):
if x > l[j]:
break
l[j + 1] = l[j]
l[j+1] = x
return l
測試**:
l =
for i in range(10):
print(l)
print(insertsort(l))
排序效率測試:在(1,10000)中生成10000個隨機數進行直接插入排序,結果如下
折半插入排序所需附加儲存空間和直接插入排序相同,從時間上比較,折半插入排序減少了關鍵字間的比較次數,而記錄的移動次數不變。
def binsertsort(l = none):
x = 0
for i in range(1, len(l)):
if l[i] < l[i-1]:
x = l[i]
low = 0
high = i-1
while low <= high:
m = int((low+high)/2)
if x < l[m]:
high = m - 1
else:
low = m + 1
for j in range(i-1, high, -1):
l[j + 1] = l[j]
l[high+1] = x
return l
排序效率測試:
可以看出折半插入排序在數量級較大時還是可以跟直接插入排序拉開差距的
幾種排序演算法的思路及其Python實現
1.快速排序 def quick sort alist,first,last if first last return mid value alist first low first high last while low while low mid value high 1 alist low a...
幾種排序演算法及其效率對比
public class bubblesort sort arr system.out.println arrays.tostring arr long start system.currenttimemillis sort arr long end system.currenttimemillis...
簡單理解TFIDF及其演算法python實現
通俗來講tf idf就是考慮單詞的重要性。字詞的重要性隨著它在檔案中出現的次數成正比增加,但同時會隨著它在語料庫中出現的頻率成反比下降。tf idf term frequency inverse document frequency 是一種統計方法,用以評估一字詞對於乙個檔案集或乙個語料庫中的其中乙...