码迷,mamicode.com
首页 >  
搜索关键字:堆排    ( 1969个结果
排序算法
排序:将一连串记录按照关键字的大小(从大到小或从小到大)进行排列。 稳定性:如果两个大小相同的关键字的相对位置在排序前和排序后是一样的(Ai等于Aj,排序前Ai 在Aj的前面,排序后Ai 还是在Aj的前面),那么这种算法就是稳定的。 稳定的排序算法有:冒泡排序、直接插入排序、归并排序、基数排序 不稳定的排序算法有:选择排序、快速排序、希尔排序、堆排序 冒泡排序:...
分类:编程语言   时间:2015-08-17 12:06:36    阅读次数:194
HeapSort 堆排序 基于伪代码实现
GIF 动态图伪代码/* From Wikipedia, the free encyclopedia*/1.父子节点特征iParent = floor((i-1) / 2);iLeftChild = 2*i + 1;iRightChild = 2*i + 2;2.算法伪代码/* 保持原汁原味就不翻....
分类:编程语言   时间:2015-08-17 06:27:23    阅读次数:176
排序法总结与比较
排序:对一序列对象根据某个关键字进行排序; 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;             例如:插入排序、冒泡排序、归并排序、计数排序、基数排序、桶排序 不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;                 例如:选择排序(5 8 5 2 9)、快速排序、堆排序 内排序:不占用额外内...
分类:编程语言   时间:2015-08-16 23:12:27    阅读次数:172
堆排序——深入浅出(图解)
如何建立这个堆呢。可以从空的堆开始,然后依次往堆中插入每一个元素,直到所有数都被插入(转移到堆中为止)。因为插入第i个元素的所用的时间是O(log i),所以插入所有元素的整体时间复杂度是O(NlogN),代码如下。n=0; for(i=1;i<=m;i++) { n++; h[ n]=a[ i]; //或者写成scanf("%d",&h[ n]); siftup(); }...
分类:编程语言   时间:2015-08-16 09:26:00    阅读次数:439
排序算法系列——堆排序
堆排序同直接选择排序一样是选择排序的一种。堆排序是借助一种数据结构——堆来完成排序,堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。 什么是堆: 关于二叉树这里就不叙述了。堆(二叉堆)可以视为一棵完全的二叉树,完全二叉树的一个“优秀”的性质是,除了最底层之外,每一层都是满的,这使得堆可以利用数组来表示(普通的一般的二叉树通常用链表作为基本容...
分类:编程语言   时间:2015-08-14 19:05:50    阅读次数:161
建堆,以及对堆排序
建堆,以及对堆排序 代码: #include int h[101];//用来存放堆的数组 int n;//用来存储堆中元素的个数,就是堆的大小 //交换函数,用来交换堆中的俩个元素的值 void swap(int x,int y) { int t; t=h[x]; h[x]=h[y]; h[y]=t; } //向下调整函数 void siftdown(int i) {/...
分类:编程语言   时间:2015-08-13 12:09:32    阅读次数:135
平均时间复杂度为O(nlogn)的排序算法
本文包括1.快速排序2.归并排序3.堆排序1.快速排序快速排序的基本思想是:采取分而治之的思想,把大的拆分为小的,每一趟排序,把比选定值小的数字放在它的左边,比它大的值放在右边;重复以上步骤,直到每个区间只有一个数。此时数组已经排序完成。快速排序最重要的是partition函数功能的实现,也就是将比...
分类:编程语言   时间:2015-08-12 18:19:22    阅读次数:134
数据结构_堆排序介绍
原文作者:http://www.cnblogs.com/skywang12345/p/3602162.html。在他基础上修改了一点堆排序介绍堆排序(Heap Sort)是指利用堆这种数据结构所设计的一种排序算法。因此,学习堆排序之前,有必要了解堆!若读者不熟悉堆,建议先了解堆(建议可以通过二叉堆,...
分类:编程语言   时间:2015-08-11 20:56:12    阅读次数:172
八大排序算法
八大排序算法阅读目录1. 直接插入排序(Straight Insertion Sort)2. 希尔排序(Shells Sort)3. 直接选择排序(Straight Selection Sort)4. 堆排序(Heap Sort)5. 冒泡排序(Bubble Sort)6. 快速排序(Quick S...
分类:编程语言   时间:2015-08-10 00:15:04    阅读次数:263
Java实现排序算法之快速排序
一、综述        快速排序是交换排序中的一种,平均算法复杂度是O(nlogn),最坏O(n*n)。下面用Java实现一个快速排序,并用注释的方式解释了思想和原理。 二、Java实现堆排序 {CSDN:CODE:869950} 三、结果检验 {CSDN:CODE:869983}...
分类:编程语言   时间:2015-08-08 00:01:10    阅读次数:375
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!