码迷,mamicode.com
首页 >  
搜索关键字:堆排序    ( 1851个结果
利用堆实现堆排序&优先队列
堆排序、利用堆实现最大(小)优先级队列、STL中的heap的使用,利用堆求解top_k类问题。...
分类:其他好文   时间:2014-06-21 22:12:31    阅读次数:291
插入排序,希尔排序,堆排序,归并排序,快速排序Java实现
参看:数据结构与算法分析-c语言描述public class Main { public static void main(String[] args) { String[] a = { "a", "d", "e", "f", "m" }; String[] b =...
分类:编程语言   时间:2014-06-18 16:08:33    阅读次数:211
java基础之:堆排序
最近做题目饱受打击,愈发觉得打好基础的重要性,于是乎,决心把基本的排序算法还有数组操作一一实现,目的在于一方面能够得到对JAVA基础的巩固,另一面在实现的过程中发现不足。 今天所实现的堆排序(最大堆)算法,最小堆大同小异。然后基于最大堆实现最大优先队列,最大优先队列可应用于作业调度,比如可将作...
分类:编程语言   时间:2014-06-18 09:52:16    阅读次数:327
十大基础实用算法之快速排序和堆排序
使用比较短的篇幅、详细的分析、伪代码、代码和动画详细介绍了快速排序和堆排序,并分析了算法思想和复杂度。值得一看...
分类:其他好文   时间:2014-06-18 06:48:51    阅读次数:210
【Algorithm】堆排序
堆是一种完全二叉树结构,并且其满足一种性质:父节点存储值大于(或小于)其孩子节点存储值,分别称为大顶堆、小顶堆。堆一般采用数组进行存储(从下标为0开始)。则父节点位置为i,那么其左孩子为2*i + 1,右孩子为2*i + 2。一. 算法描述 堆排序主要分为两个过程:建堆:先使长度为N数组形成一...
分类:其他好文   时间:2014-06-18 00:08:54    阅读次数:207
数据结构 - 归并排序(merging sort)
归并排序(merging sort): 包含2-路归并排序, 把数组拆分成两段, 使用递归, 将两个有序表合成一个新的有序表.归并排序(merge sort)的时间复杂度是O(nlogn), 实际效果不如快速排序(quick sort)和堆排序(heap sort),但是归并排序是稳定排序, 而.....
分类:其他好文   时间:2014-06-17 23:47:38    阅读次数:299
【坐在马桶上看算法】算法12:堆——神奇的优先队列(下)
接着上一Pa说。就是如何建立这个堆呢。可以从空的堆开始,然后依次往堆中插入每一个元素,直到所有数都被插入(转移到堆中为止)。因为插入第i个元素的所用的时间是O(logi),所以插入所有元素的整体时间复杂度是O(NlogN),代码如下。n=0; for(i=1;i<=m;i++) { n++; h[n]=a[i..
分类:其他好文   时间:2014-06-17 17:54:05    阅读次数:177
【啊哈!算法】算法12:堆——神奇的优先队列(下)
接着上一Pa说。就是如何建立这个堆呢。可以从空的堆开始,然后依次往堆中插入每一个元素,直到所有数都被插入(转移到堆中为止)。因为插入第i个元素的所用的时间是O(log i),所以插入所有元素的整体时间复杂度是O(NlogN),代码如下。 n=0; for(i=1;i) { n++; h[ n]=a[ i]; //或者写成scanf("%d",&h[ n]); ...
分类:其他好文   时间:2014-06-17 16:20:33    阅读次数:322
数据结构 - 归并排序(merging sort) 详解 及 代码
归并排序(merging Sort) 详解 及 代码本文地址: http://blog.csdn.net/caroline_wendy归并排序(merging sort): 包含2-路归并排序, 把数组拆分成两段, 使用递归, 将两个有序表合成一个新的有序表.归并排序(merge sort)的时间复杂度是O(nlogn), 实际效果不如快速排序(quick sort)和堆排序(heap sort)...
分类:其他好文   时间:2014-06-17 16:19:56    阅读次数:232
数据结构 - 堆排序(heap sort) 详解 及 代码(C++)
堆排序(heap sort) 详解 及 代码(C++)本文地址: http://blog.csdn.net/caroline_wendy堆排序包含两个步骤: 第一步: 是建立大顶堆(从大到小排序)或小顶堆(从小到大排序), 从下往上建立;第二步: 是依次交换堆顶和堆底, 并把交换后的堆底输出, 只排列剩余的堆, 从上往下建立;代码:/* * main.cpp * * Created on:...
分类:编程语言   时间:2014-06-16 22:12:58    阅读次数:311
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!