分类: 1)插入排序(直接插入排序、希尔排序)2)交换排序(冒泡排序、快速排序)3)选择排序(直接选择排序、堆排序)4)归并排序5)分配排序(基数排序)所需辅助空间最多:归并排序所需辅助空间最少:堆排序平均速度最快:快速排序 不稳定:快速排序,希尔排序,堆排序。 先来看看8种排序之间的关系: 1.直
分类:
编程语言 时间:
2016-02-26 16:44:34
阅读次数:
309
算法 最坏情况 平均情况/期望运行时间 插入排序 Θ(n^2) Θ(n^2) 归并排序 Θ(nlg(n)) Θ(nlg(n)) 堆排序 O(nlg(n)) 快速排序 Θ(n^2) Θ(n^2)(期望) 计数排序 Θ(k+n) Θ(k+n) 基数排序 Θ(d(k+n)) Θ(d(k+n)) 桶排序 Θ
分类:
编程语言 时间:
2016-02-23 20:40:34
阅读次数:
182
比较排序:各元素的次序依赖于它们之间的比较{插入排序O(n**2) 归并排序O(nlgn) 堆排序O(nlgn)快速排序O(n**2)平均O(nlgn)} 本章主要介绍几个线性时间排序:(运算排序非比较排序)计数排序O(k+n)基数排序O() 第一节:用决策树分析比较排序的下界 决策树:倒数第二层满...
分类:
编程语言 时间:
2016-02-05 18:30:58
阅读次数:
229
表、栈和队列是最简单和最基本的三种数据结构——《数据结构与算法分析—— C 语言描述》 表 应用范畴: i. 多项式 ADT i. 基数排序(多趟桶式排序) 代码实现: i. 多重表 链表的游标实现 代码实现: 栈 栈又叫做 LIFO(后进先出)表——《数据结构与算法分析—— C 语言描述》 应用范
分类:
其他好文 时间:
2016-01-29 20:41:12
阅读次数:
228
本文由网络资料整理而来,如有问题,欢迎指正! 分类: 1)插入排序(直接插入排序、希尔排序)2)交换排序(冒泡排序、快速排序)3)选择排序(直接选择排序、堆排序)4)归并排序5)分配排序(基数排序)所需辅助空间最多:归并排序所需辅助空间最少:堆排序平均速度最快:快速排序 不稳定:快速排序,希尔排序,
分类:
编程语言 时间:
2016-01-28 15:23:48
阅读次数:
257
其思想就是 在 一堆数字里面找一个 枢纽数字 然后将数字分成了两堆 , 一个大于该数字,一个小于该数字. 然后去递归的治理 最后合并一下就OK了. ---------------附上一个极为简陋的代码------------------- // 依然是 递归实现~~~好恶心. void Quicks
分类:
编程语言 时间:
2016-01-27 17:02:14
阅读次数:
160
基数排序又称桶排序。基数排序与本系列前面讲解的七种排序方法都不同,它不需要比较关键字的大小。它是根据关键字中各位的值,通过对排序的N个元素进行若干趟“分配”与“收集”来实现排序的。不妨通过一个具体的实例来展示一下,基数排序是如何进行的。设有一个初始序列为: R {50, 123, 543, 187,...
分类:
编程语言 时间:
2016-01-22 17:57:14
阅读次数:
207
桶排序桶排序(Bucket Sort)是对基数排序的一个变种。在排序过程中没实用到计数数组。而是用不同的桶来临时存储keyword。看一个示意图:排序序列 123 234 45 111 6 128整个过程就是在不断地分配、收集。而且每个桶都是队列。所以收集的时候得按先进先出的原则,且从第0个桶開始收...
分类:
编程语言 时间:
2016-01-12 11:28:40
阅读次数:
264
今天的这个比较神奇,是一个线性复杂度的排序算法O(n),算法导论在这一部分先证明了比较排序的复杂度下界是nlgn,所以基数排序不是基于比较的排序。 其实这种比较方法我们应该都接触过。假设输入的数都是三位以下的数(当然其他位数也可以,类比一下,这里就假设是三位数、两位数、一位数),那么只需要大致3n....
分类:
编程语言 时间:
2016-01-06 00:11:29
阅读次数:
228
比较型算法分为五类: 1、插入排序:直接插入排序、折半插入排序、希尔排序; 2、选择排序:直接选择排序、堆排序; 3、交换排序:快速排序、冒泡排序; 4、归并排序; 5、基数排序;比较分析: 1、插入排序的主旨是插入;将无序序列中的元素依次插入到有序序列中,知道无需序列为空为止; 2、...
分类:
编程语言 时间:
2016-01-02 16:09:38
阅读次数:
178