直接插入排序(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