码迷,mamicode.com
首页 >  
搜索关键字:堆排序    ( 1851个结果
堆排序
1.堆:类似二叉树 数组对象 2.种类:    最大堆->A[PARENT(i)] >= A[i] 最小堆->A[PARENT(i)] 3.建堆:Heap_max_Build    保持堆性质:Heap_max_Ify     堆排序:Heap_max_Sort 4.Code #include #include #define PAR...
分类:编程语言   时间:2015-01-21 09:01:25    阅读次数:143
[数据结构]堆排序
1,堆排序概念点击打开链接点击打开链接堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法一般都用数组来表示堆,i结点的父结点下标就为(i – 1) / 2。它的左右子结点下标分别为2 * i + 1和2 * i + 2。如第0个结点左右子结点下标分别为1和2堆的插入与...
分类:编程语言   时间:2015-01-20 22:04:05    阅读次数:170
[转载]稳定排序和不稳定排序
选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,而冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。
分类:编程语言   时间:2015-01-18 22:29:37    阅读次数:220
一些基本排序算法的实现
花了点时间一次性实现9个基本排序算法, 其中包括: 【冒泡排序】,【直接选择排序】,【直接插入排序】, 【希尔排序】,【折半插入排序】,【快速排序】, 【堆排序】,【锦标赛排序】,【归并排序】。 储存方式是用数组,元素可以是支持重载运算符的自定义类型, 有在数组中直接复制的,也有在中间过程中用索引记录的, 但最终都结果都保存在原数组中,废话不多说了,直接上代码!...
分类:编程语言   时间:2015-01-17 19:31:03    阅读次数:226
算法系列15天速成——第二天 七大经典排序【中】
原文:算法系列15天速成——第二天 七大经典排序【中】首先感谢朋友们对第一篇文章的鼎力支持,感动中....... 今天说的是选择排序,包括“直接选择排序”和“堆排序”。 话说上次“冒泡排序”被快排虐了,而且“快排”赢得了内库的重用,众兄弟自然眼红,非要找快排一比高下。 这不今天就来了两兄弟找快排算账...
分类:编程语言   时间:2015-01-16 09:59:33    阅读次数:158
算法系列15天速成——第一天 七大经典排序【上】
原文:算法系列15天速成——第一天 七大经典排序【上】今天是开篇,得要吹一下算法,算法就好比程序开发中的利剑,所到之处,刀起头落。 针对现实中的排序问题,算法有七把利剑可以助你马道成功。 首先排序分为四种: 交换排序: 包括冒泡排序,快速排序。 选择排序: 包括直接选择排序,堆排序。 插入排序: 包...
分类:编程语言   时间:2015-01-16 09:53:39    阅读次数:185
第6章 堆排序
6.4-5 在所有元素都不同的情况下,HEAPSORT的时间复杂度是Ω(nlgn) 证明:要证明这一点其实不难,只需直觉上理解——虽然堆序不“完整”,但也能在一定程度上确定大小关系,比如较小的元素多半高度很低(接近底层)。 首先进行一个粗略的计算(元素都不同): 堆中高度为0(即最底层)的节点数为总数的一半 n/2。那这些元素在整个元素集中大小位置是如何的呢: 先把这 n/2 个节点排好序...
分类:编程语言   时间:2015-01-15 16:14:27    阅读次数:270
排序算法 堆排序
堆:是一种完全二叉树的数据结构,并且具有每个非叶子节点(索引i,从0开始的话)的值大于其左右子节点(2*i+1)的值(大根堆),或者小于其左右子节点(2*i+2)的值(小根堆)。堆的性质决定了其根节点的值必然整个堆中的最大值或者最小值,因此使用堆的这个特性,发明了堆排序。堆排序的大致原理: 1. ....
分类:编程语言   时间:2015-01-15 15:47:15    阅读次数:212
堆排序
#include void AdjustHeap(int A[], int i, int n) { int j, tmp, tmpid; for( ; i * 2 + 1 = n) { tmp = A[i * 2 + 1]; tmpid = i * 2 + 1; ...
分类:编程语言   时间:2015-01-14 17:57:49    阅读次数:171
数据结构基础(19) --堆与堆排序
完全二叉树 首先让我们回顾一下完全二叉树的两个性质:  性质1:具有n个结点的完全二叉树的深度为[logn](向下取整)+1。  性质2:若对含 n 个结点的完全二叉树从上到下且从左至右进行 1 至 n 的编号,则对完全二叉树中任意一个编号为 i 的结点:    (1) 若 i=1,则该结点是二叉树的根,无双亲,否则,编号为 [i/2](向下取整)的结点为其双亲结点;    (2) 若 2i>n,...
分类:编程语言   时间:2015-01-13 21:40:06    阅读次数:221
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!