快速排序Python实现

快速排序Python实现

gist: https://gist.github.com/genesislive/5081031


#!/usr/bin/env python
# -*- coding: UTF-8 -*-

__author__ = 'Genesislive'


def partition(list, start, end):
    pivot = list[start]
    bottom = start
    top = end

    while bottom < top:
        # print '%d - %d' % (bottom, top)
        while bottom < top and list[top] >= pivot:
            top -= 1

        list[bottom] = list[top]

        while bottom < top and list[bottom] <= pivot:
            bottom += 1

        list[top] = list[bottom]

    list[bottom] = pivot
    return bottom


def quicksort(list, start, end):
    if start < end:
        split = partition(list, start, end)
        quicksort(list, start, split - 1)
        quicksort(list, split + 1, end)


def main():
    import random
    random.seed()
    list = [random.randint(1, 100) for i in range(20)]

    import string
    print string.join(map(str, list))   # print list

    quicksort(list, 0, len(list) - 1)

    print string.join(map(str, list))


if __name__ == '__main__':
    main()



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值