30秒学会快速排序算法

作者: 算法猪立业分类: 计算机技术 发布时间: 2020-06-26 10:34:51 浏览:17427 次

30秒学会快速排序算法

土豆泥不可以煲汤:
这个是真的nb,其他的哪些啥鬼视频都是些啥

【回复】可能你看了编程方面的视频了,所以有基本数,左右标记这些,原理是一样的。只是操作步骤不能使用“眼睛观察”和“用手推数字”而已
【回复】这个视频步骤是错误的,希望up主重新修改,已经私聊你了
【回复】回复 @跟着张同学学IT :这个视频是直观角度讲快排的,不涉及线性数据结构,排序过程就是看每次的开头和结果,中间过程属于细节,原理中不必讲
afewlove:
具体到代码层面,每轮分区后的顺序不对吧

【回复】回复 @bili_68930683987 :正解,如果按照视频的思路做这道题,必错
【回复】你说数据的顺序?在算法结束前各个分区都不保证正序
【回复】回复 @猪立业at人工智能 :从代码上要实现空间O(1),数组内原地排序,需要两个循环分别从首尾遍历交换数值,从这个角度你说的步骤就有问题
timeChill:
Tips: 轴选择第一个数字,如果碰到数组前面部分有序的情况会增大时间复杂度,极端的如果用快排排序有序的数组,每次选择第一个数作为枢轴,那么会造成最坏情况的时间复杂度 O(n**2)

【回复】枢轴的选择: 1. 随机选择 (不过随机数生成有额外开销) 2. 中位数(显然最好但很难算并且需要额外的时间复杂度) 3. 三数中值分割法,左端、右端和中心三个位置的中位数(比较常用) * 生产环境中的排序算法更为巧妙和复杂,具体可以细看各语言的代码实现

知识分享官 科普 算法 编程

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!