排序算法扫盲

插入类排序:

直接排序,折半插入排序,希尔增量排序;

交换类排序:

冒泡排序,快速排序(分治思想);

选择类排序:

简单选择排序,堆排序(建堆是关键,还必须插入和调整);

归并排序:

二路归并排序,多路归并排序(多路归并排序多用在外部排序上);

基数类排序:

桶排序(桶排序的分到这里可能不太准确);

外部排序(多路归并排序和败者树,伴随有I/O过程,比较复杂)。


内部排序和外部排序的分类依据:排序是否在内存中。一般的排序算法都是基于比较的,而基数排序时例外。

排序的时间复杂度一般有比较和移动的次数有关。

n个关键字的序列,至少得经过log(n!)比较:

比如有n个元素,每次比较的话有两种可能,假设共计得比较t次,则有2^t种可能性,而n个元素的比较树是n!种,2^t=n!,得t=log(n!)。


盗图http://gengning938.blog.163.com/blog/static/128225381201141121326346/:

排序算法性能分析 - 枫叶 - 枫叶

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值