首页 文档 博客 资源 论坛 |
雪峰的JavaEE博客
研究、思考、探索
访问地址:http://xuefeng.javaeedev.com » 复制 » 收藏 » 订阅
阅读文章
快速排序算法:Python
发表于09-06-19 13:50 | 阅读 1005 | 评分 (暂无)

开始研究Python,写个快速排序算法练练手:

 

'''
qsort.py

Quick sort

Created on Jun 18, 2009

@author: Liao
'''

from random import Random

def quick_sort(arr):
    if len(arr) > 1:
        qsort(arr, 0, len(arr) - 1)

def qsort(arr, start, end):
    base = arr[start]
    pl = start
    pr = end
    while pl < pr:
        while pl < pr and arr[pr] >= base:
            pr -= 1
        if pl == pr:
            break
        else:
            arr[pl], arr[pr] = arr[pr], arr[pl]

        while pl < pr and arr[pl] <= base:
            pl += 1
        if pl == pr:
            break
        else:
            arr[pl], arr[pr] = arr[pr], arr[pl]
    # now pl == pr
    if pl - 1 > start:
        qsort(arr, start, pl - 1)
    if pr + 1 < end:
        qsort(arr, pr + 1, end)

r = Random()
a = []
for i in range(20):
    a.append(r.randint(0, 100))

print a
quick_sort(a)
print a
评分
列出所有评论
没有可显示的项目
发表您的评论
自我介绍 »
潜心研究JavaEE……
等级:
搜索文章 »
文章分类 »
最新发表 »
最新评论 »