码迷,mamicode.com
首页 >  
搜索关键字:堆排序.算法    ( 118个结果
《算法导论》— Chapter 6 堆排序
序本文主要介绍堆排序算法(HeapSort),堆排序像合并排序而不像插入排序,堆排序的运行时间为O(nlgn);像插入排序而不像合并排序,它是一种原地(in place)排序算法。在任何时候,数组中只有常数个元素存储在输入数组以外,这样,堆排序就把插入排序和合并排序的优点结合起来。 堆排序还引入了另外一种算法设计技术,利用某种数据结构(在此算法中为“堆”)来管理算法执行中的信息。堆数据结构不只在堆...
分类:编程语言   时间:2015-06-30 21:59:09    阅读次数:150
各种排序算法之比较
1.时间复杂度  时间复杂度为O(n^2)的排序算法:插入排序、冒泡排序、选择排序  时间复杂度为O(nlogn)的排序算法:堆排序、归并排序、快速排序  希尔排序介于这两者之间 2.算法稳定性  稳定的排序算法:插入排序、冒泡排序、归并排序和基数排序  不稳定的排序算法:选择排序、快速排序、希尔排序、堆排序...
分类:编程语言   时间:2015-06-30 00:13:26    阅读次数:149
排序算法-堆排序
堆排序算法是建立在堆这种数据结构的基础上,其实堆听着很高端,其实很简单,就是一个二叉树,但是又特殊条件,就是其父节点比孩子节点都大(或都小)的堆称为最大堆(最小堆),瞬间感觉很简单了,最简单的保存方法就是直接用数组来保存。 给出一组数,我们要使用堆排序,首先需要建堆,但是这一组数首先肯定是不满足上面堆的性质的,所以我们需要调整,让他满足堆得性质,变成一个堆,怎么调整呢?拿最大堆来说,就是对于一个节...
分类:编程语言   时间:2015-06-22 22:21:57    阅读次数:203
《编程珠玑》阅读小记(11) — 堆
章节简述 本章主要介绍堆,用该数据结构解决下面两个重要的问题: 排序,采用堆排序算法对n元数组排序,所花的时间不会超过O(nlogn),而且只需要几个字的额外空间; 优先级队列,堆通过插入新元素和提取最小元素这两种操作来维护元素集合,每个操作所需的时间都为O(logn); 本章采用自底向上的组织结构,从细节开始逐步过渡到正题。 堆数据结构 该部分介绍堆数据结构的设计思想。...
分类:其他好文   时间:2015-06-19 18:51:01    阅读次数:156
堆排序算法
Description 编写程序堆排序算法。按照非递减排序,测试数据为整数。Input 第一行是待排序数据元素的个数; 第二行是待排序的数据元素。Output 一趟堆排序的结果。Sample Input1231050 36 41 19 23 4 20 18 12 22Sample Output14 ...
分类:编程语言   时间:2015-06-16 16:05:13    阅读次数:161
堆排序
堆排序是利用堆积树这种数据结构设计的一种算法。 要学习堆排序,我们首先要了解什么是二叉堆: 二叉堆是完全二叉树这这是近似完全二叉树。二叉堆可分为两种形式:最大堆和最小堆。 最大堆的性质是指某个结点的值至多与起父结点的值一样大,最小堆的性质就是指某个节点的值都大于其父结点的值。下图是一个最大堆和一个最小堆。 在堆排序中我们一般使用最大堆。我们要进行堆排序,首先需要把我们的数组转化成一个最大堆...
分类:编程语言   时间:2015-05-10 10:01:00    阅读次数:170
堆排序
堆排序是利用堆积树这种数据结构设计的一种算法。 要学习堆排序,我们首先要了解什么是二叉堆: 二叉堆是完全二叉树这这是近似完全二叉树。二叉堆可分为两种形式:最大堆和最小堆。 最大堆的性质是指某个结点的值至多与起父结点的值一样大,最小堆的性质就是指某个节点的值都大于其父结点的值。下图是一个最大堆和一个最小堆。 在堆排序中我们一般使用最大堆。我们要进行堆排序,首先需要把我们的数组转化成一...
分类:编程语言   时间:2015-05-10 09:44:24    阅读次数:133
【算法设计-堆排序】大根堆排序
1.堆排序不仅拥有与归并排序一样的时间复杂度为o(nlgn),而且空间复杂度所占秩序额外的几个元素空间,这个又有插入排序的优势。 2.堆排序分为3部分,第一部分是保持堆的性质的函数MAX_HEAPIFY函数,用于保持堆的性质:父结点的值要大于子节点。                                      第二部分是创建大根堆的函数,BUILD_MAX_HEAP这个函数从第一...
分类:编程语言   时间:2015-05-03 23:45:15    阅读次数:210
Javascript中的冒泡排序,插入排序,选择排序,快速排序,归并排序,堆排序 算法性能分析
阿里面试中有一道题是这样的: 请用JavaScript语言实现sort排序函数,要求:sort([5,100,6,3,-12])//返回[-12,3,5,6,100],如果你有多种解法,请阐述各种解法的思路及优缺点。(仅需用代码实现一种解法,其它解法用文字阐述思路即可)...
分类:编程语言   时间:2015-04-23 19:17:20    阅读次数:262
算法导论——最大堆,以及堆排序算法
本段代码实现了建堆,维护最大堆的性质,堆排序函数,优先队列的相关函数(插入,找最大值,提取出最大值,增加关键值,增加元素),以及相关的测试 1 #include 2 #include 3 #include 4 #define LEFT(i) (2 * i) 5 #define RIG...
分类:编程语言   时间:2015-04-06 23:02:56    阅读次数:193
118条   上一页 1 ... 7 8 9 10 11 12 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!