排序算法
文章平均质量分 84
zjuwill
记录学习经历,梳理知识框架
展开
-
单向链表的快速排序实现
概览 上面一篇文章讲解了数组快速排序的实现,由于单向链表与数组天生差异,无法实现从后往前的指针遍历,所以考虑换一种方式来实现。 实现原理 既然不能从后往前进行指针遍历,那么就从前往后吧。同样的设定基准值pivot为链表的头结点的值,两个指针S(Small)和L(Large)分别指向头结点和头结点的next结点。我们的目标是保证S指针之前的元素都小于等于pivot,而S指针与L指针之间的数据都原创 2018-01-11 19:55:26 · 1324 阅读 · 0 评论 -
快速排序的实现与时间复杂度
源起 最近面试的时候,遇到很多次关于快速排序的问题以及其变种问题,所以做一个总结,梳理一下知识。 快速排序的原理 通过设定基准值(一般取第一个数据),进行一趟排序,将待排数据分成独立的两部分,其中一部分数据都小于基准值,另外一部分数据都大于基准值;接着继续使用该方法分别对这两部分数据进行排序,直到所有数据成为有序序列。 快速排序的示例 一开始设定基准值为数组第一个数据49 排原创 2018-01-11 13:45:36 · 11532 阅读 · 3 评论