python算法练习

gnome sort:
def gnomeSort(unsort):
    i = 0
    while i < len(unsort):
        if i == 0 or unsort[i -1] <= unsort[i]:
            i+= 1
        else:
            unsort[i-1], unsort[i] = unsort[i], unsort[i -1]
            i -= 1


merge sort:
def mergesort(seq):
    mid = len(seq) // 2
    lft, rgt = seq[:mid], seq[mid:]
    if len(lft) > 1 : lft = mergesort(lft)
    if len(rgt) > 1 : rgt = mergesort(rgt)
    res = []
    while lft and rgt:
        if lft[0] >= rgt[0]:
            res.append(lft.pop(0))
        else:
            res.append(rgt.pop(0))
    return (lft or rgt) + res
posted @ 2011-11-04 17:32  Thomas Hwang  阅读(233)  评论(0编辑  收藏  举报