目录
下一篇:简单选择排序
算法思想:
过程:
low元素开始所指的元素作为基准元素,且此时基准元素的位置表示为空
low的左边要都小于基准元素,high右边大于基准元素
从high开始向左移动,若high所指小于基准元素,则把该元素移动到low指针所指的空位置,并开始移动low元素
如果low所指小于基准元素,high大于基准元素则不需要移动,直接low++,high++
如果low元素所指大于基准元素则与high所指的空元素交换
最终low与high会汇合,就是基准元素最后的归宿
即:谁空谁停下,汇合就完成
以上完成了一次划分
该基准元素即49就不用管了,要对左右子表重复一遍操作,递归进行(分治思想)
代码实现:
效率分析
空间复杂度
树的层数就是递归深度
最终结论
最好情况,每次划分都是从中间划分
最坏情况,每次划分的左边都只划分一个元素
优化
效率总结
稳定性:不稳定