插入排序

来源:互联网 发布:查看手机网络制式 编辑:程序博客网 时间:2024/06/11 12:26


中文wiki上的版本:

def insertion_sort(n):    if len(n) == 1:        return n    b = insertion_sort(n[1:])    m = len(b)    for i in range(m):        if n[0] <= b[i]:            return b[:i]+[n[0]]+b[i:]    return b + [n[0]]

使用分片看得有点头疼

再来看看《Data Structures and Algorithms in Python》的版本

def insertion sort(A):    ”””Sort list of comparable elements into nondecreasing order.”””    for k in range(1, len(A)): # from 1 to n-1        cur = A[k] # current element to be inserted        j = k # find correct index j for current        while j > 0 and A[j−1] > cur: # element A[j-1] must be after current            A[j] = A[j−1]            j −= 1            A[j] = cur # cur is now in the right place
这个还比较清楚些,书的这段代码后还有一个图,比较不错

参考:

http://zh.wikipedia.org/wiki/%E6%8F%92%E5%85%A5%E6%8E%92%E5%BA%8F

0 0