排序算法的稳定性

任何相同的值,在排序之后,保持原本的相对次序不变。

选择排序,做不到稳定性 

冒泡、选择、插入(O(n2))

归并排序:稳定性

快排:做不到稳定性(论文级别的难度的)

堆排:做不到稳定性

O(NlogN)

证明难,举反例

追求稳定性的意义:在实际业务中,希望在一次排序后,不抹去原有序列的信息,比如下例。先按照身高排序,再按照年龄排序,稳定性的排序算法可以保证“幺”和“小明”身高信息相对序列不发生改变,但非稳定算法无法保证这一点。

计算机科学是肥常实用的科学,哈哈哈哈。

综合排序算法:

小样本:插排 <60(常数项低)

从稳定性出发的:

基础类型用快排

自定义类用归排

 

有关排序问题的补充:

归并排序内部缓存法,额外空间复杂度可以变为O(1)

原地归并排序:傻逼!

 

快排:01 stable sort  稳定性

 

0/1标准

奇数在左边,偶数在右边

怼面试官

O(1)/O(N),稳定性,不存在?

 

荷兰国旗问题做不到稳定性

让你的思维被喜欢!

 

比较器:

重载运算符

 

c++:重载运算符或compare方法

优先级队列就是

(有序结构)红黑树:比较器,lamada表达式?

 

桶排序:计数排序、基数排序:不是基于比较的排序,与被排序样本的数据情况相关

O(N)、O(N),数与索引相对应,用

采用桶的思想,不许用非比较型的排序算法,实现O(N)的排序,并计算相邻数的最大值

为什么不找空桶的两侧:

空桶是杀死max发生在一个桶内的可能性!

当婊子,不要立牌坊

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值