快速排序算法最坏的时间复杂度时o(n*n),期望的运行时间为o(nlgn)。
逻辑分析:
1 先从数组中选取一个数作为基数,可随机选择;
2 将数组中大于该基数的放在该基数右边,小于该基数的放在该基数左边;
3对左右两个数组重复第二步。
代码分析
数组a[]={2,1,4,5,3,8,7,9,0,6},该数组第一次分区时,left=0,right=10,假设随机基数为a[4]=3。
首先将a[0]和a[4]互换位置,数组a[]={3,1,4,5,2,8,7,9,6,0}。
进行第一次分区:
文章来源: C++ 快速排序算法