快速排序(个人总结,仅供参考)

取待排序列中的第一个元素(可以任意),使得它左边的元素都比他小,右边的元素都比他大,称这个元素枢轴。再对左右序列进行递归操作,使得整个序列成为一个有序序列。

算法细节:以升序为例,头尾两个指针(索引),头指针指向第一个元素(枢轴),尾指针指向最后元素的后一位。尾指针从右到左寻找第一个小于等于枢轴的元素,头指针从左到右寻找第一个大于等于枢轴的元素。然后交换头指针和尾指针指向的元素,从而使得大的在后面小的在前面。(都是先移动再比较,避免了交换元素等于枢轴时发生的卡住的情况)

最后将枢轴与尾指针交换(因为最后头指针≥尾指针),然后再递归。注意:上述的头指针是没有检查(处理)第一个元素(枢轴)的,因此需要这步操作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容