shellsort.py 文件源码

python
阅读 24 收藏 0 点赞 0 评论 0

项目:algos-py 作者: all3fox 项目源码 文件源码
def shellsort(xs, key=lambda x: x, reverse=False):
    m, n = 1, len(xs)

    ys = [key(x) for x in xs]
    cmp = operator.ge if reverse else operator.le

    while m < n // 3:
        m = 3 * m + 1

    while m:
        for i in range(m, n):
            for j in range(i, m - 1, -m):
                if cmp(ys[j - m], ys[j]): break

                xs[j], xs[j - m] = xs[j - m], xs[j]
                ys[j], ys[j - m] = ys[j - m], ys[j]
        m //= 3
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号