码迷,mamicode.com
首页 >  
搜索关键字:堆排    ( 1969个结果
堆排序
堆排序堆的基础知识我们已经在《堆的基础知识》:http://blog.csdn.net/ii1245712564/article/details/45505799里面介绍过了,这次我们将介绍堆的用途之一:堆排序在诸多的排序算法里面里面,堆排序算是比较快速的了,排序时间消耗为:O(nlogn)O(nlogn),虽然相对于快速排序来说慢了一点点,但是就对于堆的特有性质而言(最大堆堆顶元素为最大元素,最小...
分类:编程语言   时间:2015-05-06 15:14:55    阅读次数:136
典型排序算法比较
根据带排序数据是否全部放入内存,排序分为内排序和外排序。 下面就根据我看书的体会,主要分析内排序的性能。 内排序的种类:插入排序(直接插入排序,希尔排序),选择排序(简单选择排序、堆排序),交换排序(冒泡排序、快速排序),归并排序。 其中用的比较多的是插入排序、归并排序、快速排序。 排序算法的比较:性能的比较可以从以下5个方面进行分析:时间复杂度(平均情况、最好情况、最差情...
分类:编程语言   时间:2015-05-06 10:58:22    阅读次数:150
(高效率排序算法三)堆排序
一.堆的介绍        堆有如下特点的二叉树:           1.他是完全的二叉树。也就是说,除了树的最后一层布需要时满的,其他的每一层从左到右都是满的.(如下图的完全二叉树跟不完全二叉树)                        2.它常常用一个数组在实现。(如下图显示了堆它与数组之间的关系。堆在存储器中的表示是数组;堆只是概念上的表示。注意树是完全二叉树,...
分类:编程语言   时间:2015-05-05 21:46:49    阅读次数:195
选择排序
基本思想编辑选择排序的基本思想是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。基于此思想的算法主要有简单选择排序、树型选择排序和堆排序。简单选择排序的基本思想:第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换;第2趟,在待...
分类:编程语言   时间:2015-05-05 21:08:21    阅读次数:159
排序算法之堆排序
基本思想: 基本思想主要就是两点:构建初始化堆和排序。 以构建最大堆为例,可以分为以下几个步骤: 1、将初始待排序序列(R0,R1,R2....Rn-1)构建成最大堆,此堆为初始的无序堆。 2、将堆顶元素R0与最后一个元素Rn-1交换,此时得到一个新的无序序列(R0,R1,R2....Rn-2)和新的有序序列Rn-1,且满足R[0,2...n-2] 3、由于交换后新的堆顶R0可能违反最大...
分类:编程语言   时间:2015-05-05 19:50:19    阅读次数:171
堆排序-2
package com.ghj.util;public class sortAlgorithm> { // 交换索引i和索引j的值 private void swap(T[] data, int i, int j) { T tmp; tmp = data[i]...
分类:编程语言   时间:2015-05-05 18:38:18    阅读次数:113
堆排序
1.堆排序是利用堆的特性对记录序列进行排序的一种排序方法。好的那么堆得特性是什么呢?堆得定义:堆是满足下列性质的数列{r1, r2, …,rn}:
分类:编程语言   时间:2015-05-05 14:07:10    阅读次数:110
【算法设计-优先队列】优先队列的实现与操作
优先队列是堆排序的一个具体应用。 优先队列分为如下几个操作: 1.INSERT(S,x)把元素x插入到优先队列中。 2.MAXIMUM(S):返回s中具有最大关键字的元素。 3.EXTRACT_MAX(S):去掉S中最大关键字的元素 4.INCREASE_KEY(S,x,k):将元素x的关键字值增加到k,k是不小于x的元素。 优先队列的应用: 1.共享计算机系统的作业调度。最大优先队...
分类:编程语言   时间:2015-05-04 10:05:49    阅读次数:187
堆排序
1 #include 2 #include 3 #include 4 #include 5 6 using namespace std; 7 const int N=15; 8 void change(int a[],int f,int t) 9 {10 int tmp=a[f];11 ...
分类:编程语言   时间:2015-05-04 01:08:13    阅读次数:225
【算法设计-堆排序】大根堆排序
1.堆排序不仅拥有与归并排序一样的时间复杂度为o(nlgn),而且空间复杂度所占秩序额外的几个元素空间,这个又有插入排序的优势。 2.堆排序分为3部分,第一部分是保持堆的性质的函数MAX_HEAPIFY函数,用于保持堆的性质:父结点的值要大于子节点。                                      第二部分是创建大根堆的函数,BUILD_MAX_HEAP这个函数从第一...
分类:编程语言   时间:2015-05-03 23:45:15    阅读次数:210
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!