#! /usr/bin/env python
#coding=utf-8
import random
def kidSort(s,k):
if k<=0:
return []
if len(s)<=k:
return s
sa,sb=partition(s)
ta=kidSort(sa,k)
tb=kidSort(sb,k-len(sa))
ta.extend(tb)
return ta
def partition(s):
Sa=[]
Sb=[]
rand=random.randint(0,len(s))
s[0],s[rand%len(s)]=s[rand%len(s)],s[0]
p=s[0]
for z in s[1:]:
if z>p:
Sb.append(z)
else:
Sa.append(z)
Sa.append(p)
return Sa,Sb
print kidSort([3,1,2,123,12,31,24,123,1,41,41,4,1,241,24,14,1,241,24],8)
快排+python,非常不错,
本文介绍了一种使用Python实现的快速排序算法。通过递归方式,该算法能够将一个列表按指定位置进行划分,并返回排序后的结果。代码中还包含了一个随机选择枢轴元素的过程以提高排序效率。
1314

被折叠的 条评论
为什么被折叠?



