C++
void quicksort(int list[],int m,int n)
{
int key,i,j,k;
if( m < n)
{
k = (m+n)/2;
swap(&list[m],&list[k]);
key = list[m];
i = m+1;
j = n;
while(i <= j)
{
while((i <= n) && (list[i] <= key))
i++;
while((j >= m) && (list[j] > key))
j--;
if( i < j)
swap(&list[i],&list[j]);
}
// 交换两个元素的位置
swap(&list[m],&list[j]);
// 递归地对较小的数据序列进行排序
quicksort(list,m,j-1);
quicksort(list,j+1,n);
}
}
Python(未完成)
def quicksort(l):
if len(l)>1:
k=int(len(l)/2)
l[0],l[k]=l[k],l[0]
key=l[0]
i=1
j=len(l)-1
while i<=j:
while i<=len(l)-1 and l[i]<=key:
i+=1
while 0<=j and l[j]>key:
j-=1
if i<j:
l[i],l[j]=l[j],l[i]
l[0],l[j]=l[j],l[0]
quicksort(l[:j])
quicksort(l[j+1:len(l)])
Python修正版
def quickSort(arg):
if(arg == []):
return []
bigList = []
smallList = []
middle = arg[0]
for i in arg[1:]:
if i<=middle:
smallList.append(i)
else:
bigList.append(i)
return quickSort(smallList)+[middle]+quickSort(bigList)