基本思想为:
1.先从待排序区间中取出一个数作为基准数,一般选择首(或末元素)作为基准元素(key),这样易于理解也不易出错。关于其它位置选择方法及出现的问题这里暂不叙述。
2.分区过程,将比这个数大的数全放到它的右边,
小于或等于它的数全放到它的左边。
3.再对左右区间重复第二步,直到各区间只有一个数。
这里引用网友提出的易于理解的挖坑填坑思想更加易于记忆与理解。
详细实现代码如下:
完全代码及测试结果如下:
现进行第一种改写,将前后搜寻相继进行,再以交换替代填坑,过程不再赘述,上代码:
其他改进算法,如随机选取基准,等待后续更新。