排序算法:insert sort(python)

尝试用python写最简单的insert sort。但由于对python不熟悉,一开始的时候完全用了c语言的思考方式....

#insert sort
def sort(L):
    """
    L : list to be sorted
    return : new list from big to small
    """
    for i in range(1,len(L)):
        key = L[i]
        for j in range(i):
            if key >= L[j]:
                temp1 = L[j]
                for k in range(j+1,i+1):
                    temp2 = L[k]
                    L[k] = temp1
                    temp1 = temp2
                L[j] = key
                break

L = [1,5,6,3,7,8]
sort(L)
print(L)

结果正确,但是写的很复杂。要注意python中本来就有了list这种数据结构,因此可以直接用list的特性。

#insert sort
def sort(L):
    """
    L : list to be sorted
    return : new list from big to small
    """
    for i in range(1,len(L)):
        for j in range(i):
            if L[i] >= L[j]:
                key = L.pop(i)
                L.insert(j,key)
                break

L = [1,5,6,3,7,8]
sort(L)
print(L)

猜你喜欢

转载自www.cnblogs.com/litingyu/p/9192239.html