首页 > 编程语言 > 详细

python快速排序实现

时间:2014-11-07 11:03:56      阅读:100      评论:0      收藏:0      [点我收藏+]

方案一:容易理解的写法

 

#!/usr/bin/env python

arr = [34, 80, 10, 8, 15, 20, 16, 48, 50, 36, 18]
size = len(arr)

def partion(arr, start, end):
k = start
i = start
j = end

while j > i:
while j > i and arr[j] >= arr[k]:
j = j - 1

if j > i:
temp = arr[k]
arr[k] = arr[j]
arr[j] = temp
k = j

while j > i and arr[i] <= arr[k]:
i = i + 1

if j > i:
temp = arr[k]
arr[k] = arr[i]
arr[i] = temp
k = i

return k

def sort(arr, start, end):
if start < end:
index = partion(arr, start, end)
sort(arr, start, index)
sort(arr, index + 1, end)


print arr
sort(arr, 0, size - 1)
print arr

 

 

方案二:稍便捷的写法

#!/usr/bin/env python

arr = [34, 80, 10, 8, 15, 20, 16, 48, 50, 36, 18]
size = len(arr)

def partion(arr, start, end):
i = start
j = end
first = arr[start]

while i < j:
while i < j and arr[j] >= first:
j = j - 1
arr[i] = arr[j]

while i < j and arr[i] <= first:
i = i + 1
arr[j] = arr[i]

arr[i] = first;
return i

def sort(arr, start, end):
if start < end:
index = partion(arr, start, end)
sort(arr, start, index)
sort(arr, index + 1, end)


print arr
sort(arr, 0, size - 1)
print arr

python快速排序实现

原文:http://www.cnblogs.com/tristansun/p/4080726.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!