插入排序算法
伪代码:
INSERTION-SORT(A)
for j=2 to A.length
key=A[j]
//insert A[j] into the sorted sequence A[1...j-1]
i=j-1
while i>0 and A[i]>key
A[i+1]=A[i]
i=i-1
A[i+1]=key
python代码实现
import sys
def insert_sort(alist):
#从第二个位置开始进行向前插入
for i in range(1,len(alist)):
#从第i个元素向前比较,如果小于前一个元素,交换位置
for j in range(i,0,-1):
if alist[j] < alist[j-1]:
alist[j],alist[j-1]=alist[j-1],alist[j]
return alist
def main():
alist=[]
for i in range(1,len(sys.argv)):
alist.append(int(sys.argv[i]))
print(insert_sort(alist))
if __name__=="__main__":
main()
运行代码
# py3 insert_sort.py 1 2 3 4 5 7 6
结果
[1, 2, 3, 4, 5, 6, 7]