直接插入排序(insertion sort)
思想:用關鍵碼依次比較待排序元素位置前面的關鍵碼,找到要插入的位置,其後的元素依次後移。
時間複雜度:o(n*n)
關鍵碼比較次數:n*n/2
對象移動次數:n*n/2
穩定性:穩定
#!/urs/bin/env python
# -*- encoding:utf-8 -*-
def insertsort(seq):
for i in range(1, len(seq)):
j = i - 1
temp = seq[i]
while seq[j]>temp and j >= 0:
seq[j+1] = seq[j]
j = j - 1
seq[j+1] = temp
if __name__ == '__main__':
seq = [5, 2, 1, 3, 4, 8, 1]
insertsort(seq)
print seq