您的位置:首页 > 编程语言 > Python开发

python实现快速排序算法

2015-07-23 20:01 746 查看

python 实现快速排序算法

介绍:

快速排序通常明显比同为Ο(n log n)的其他算法更快,因此常被采用,而且快排采用了分治法的思想,所以在很多笔试面试中能经常看到快排的影子。可见掌握快排的重要性。
步骤:

从数列中挑出一个元素作为基准数。
分区过程,将比基准数大的放到右边,小于或等于它的数都放到左边。
再对左右区间递归(执行前两步),直至各区间只有一个数。

# -*- coding: UTF-8 -*-

''' this script is the implementation of quick sort algorithm

Pycharm, python 2.7.9

by will

time: 2015.07.23

'''

import random

def quick_sort(L):

if len(L)<2: return L

pivot_element = random.choice(L)

small = [i for i in L if i < pivot_element]

medium = [i for i in L if i == pivot_element]

large = [i for i in L if i > pivot_element]

# return quick_sort(small) + [pivot_element] + quick_sort(large) # no duplicate

return quick_sort(small) + medium +quick_sort(large) # the original list with duplicate

# example

m = [4,2,6,7,0,2,3,9]

print quick_sort(m)

参考:

【1】/article/1383496.html

【2】http://wuchong.me/blog/2014/02/09/algorithm-sort-summary/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: