Swift实现快速排序算法的代码示例
思想
快速排序作为分治代表,通常实现由三步
1.数据中选择一个元素作为”基准”(pivot),通常选取最后一个元素;
2.分区(partition)所有小于”基准”的元素,都移到”基准”的左边;所有大于”基准”的元素,都移到”基准”的右边。分区操作结束后,基准元素所处的位置就是最终排序后它的位置。
3.对“基准”左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。
实现:
funcquickSort(inouta:[Int],l:Int,r:Int){
ifl<r{
vari=l,
j=r,
x=a[i]
whilei<j&&a[j]>=x{
j-=1
}
ifi<j{
a[i]=a[j]
i+=1
}
whilei<j&&a[i]<x{
i+=1
}
ifi<j{
a[j]=a[i]
j-=1
}
a[i]=x
quickSort(&a,l:l,r:i-1)
quickSort(&a,l:i+1,r:r)
}
}
varb=[8,7,6,5,4,3,2,1]
quickSort(&b,l:0,r:7)
print(b)
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短