欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python Algorithms – chapter3 计数初步

程序员文章站 2022-07-09 18:21:22
一些基本递归式的解决方案及其应用实例主定理的三种情况排序算法之侏儒排序法def gnomesort(seq): i = 0 while i 1: lft = mergesort(lft) if len(rgt) > 1: rgt = mergesort(rgt) res = [] while lft... ......


一些基本递归式的解决方案及其应用实例

Python Algorithms – chapter3 计数初步

主定理的三种情况

Python Algorithms – chapter3 计数初步

排序算法之侏儒排序法

def gnomesort(seq):
    i = 0
    while i < len(seq):
        if i == 0 or seq[i-1] <= seq[i]:
            i += 1
        else:
            seq[i], seq[i-1] = seq[i-1], seq[i]
            i -= 1

排序算法之归并排序法

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[-1] >= rgt[-1]:
            res.append(lft.pop())
        else:
            res.append(rgt.pop())
        res.reverse()
        return (lft or rgt) + res