码迷,mamicode.com
首页 >  
搜索关键字:堆排序    ( 1851个结果
练习 堆排序
1 #include 2 int h[101]; 3 int n; 4 void swap(int x,int y)//交换 5 { 6 int t=h[x]; 7 h[x]=h[y]; 8 h[y]=t; 9 }10 void siftdown(int i)//调整一次1...
分类:编程语言   时间:2014-11-24 13:27:00    阅读次数:129
【Leetcode】Sort List in java,你绝对想不到我是怎么做的^^我写完过了我自己都觉得好jian~
Sort a linked list in O(n log n) time using constant space complexity. 大家看完题目估计跟我一样啦。。。都在想哪些是nlogn啊~快速排序、归并排序、堆排序!然后开始愁,这些东西变成list了可怎么办啊。。。 可是我深深地记得在CMU的时候老师告诉我,java现在自带的Arrays.sort用的是快排,然后我就想,那么…...
分类:编程语言   时间:2014-11-24 10:10:04    阅读次数:170
100w 个整数里取出最大的 500 个, 可以转换为 n 个数里取出最大的 m 个
100w 个整数里取出最大的 500 个,采用堆排序实现,算法复杂度为 O(n+nlogm)...
分类:其他好文   时间:2014-11-22 16:06:37    阅读次数:154
堆排序
#include#define MAXSIZE 100 //假设文件长度,即待排序的记录数目typedef int KeyType;typedef struct{ KeyType key;}RcdType;typedef struct{ RcdType R[MAXSIZE+1];//...
分类:编程语言   时间:2014-11-22 10:33:53    阅读次数:280
《github一天一道算法题》:堆算法接口实现(堆排序、堆插入和堆取最值并删除)
看书、思考、写代码! /********************************************* * copyright@hustyangju * blog: http://blog.csdn.net/hustyangju * 题目:堆排序实现,另外实现接口:取堆最大值并删除、堆插入 * 思路:堆是在顺序数组原址上实现的,利用完全二叉树的性质,更具最大堆和最小堆的定义实...
分类:编程语言   时间:2014-11-21 12:42:16    阅读次数:171
为什么Dijkstra算法不适用边长为负数的情况
Dijkstra算法,是有向/无向加权图(就是每条边都有长度)中,计算两个点之间最短距离的有效方法,在使用堆排序的情况下,它的时间复杂度为O(Nlog(N+M)),(这里N代表节点数,M代表边数)很接近线性了,还是非常好的。 不过,Dijkstra算法有一个限制,就是它只适用于边长不为负的图。如果一张图里有负数长的边长,那么Dijkstra算法就不适用了。这时候就需要另外的算法了。 为什么不适用呢?其实很容易就可以找到反例。...
分类:编程语言   时间:2014-11-20 23:46:29    阅读次数:278
堆排序学习以及模板
堆排序学习以及模板 #include #include int getParent(int i) { return (int)(i/2); } int getLeftSon(int i) { return (i*2); } int getRightSon(int i) { return (i*2 + 1); } void PrintHeap(i...
分类:编程语言   时间:2014-11-19 18:37:08    阅读次数:302
趣解堆排序--老子儿子争王位
/*The MIT License (MIT)Copyright (c) Permission is hereby granted, free of charge, to any person obtaining a copyof this software and associated docu....
分类:编程语言   时间:2014-11-19 17:50:40    阅读次数:258
LeetCode Solutions : Sort List
Sort a linked list inO(nlogn) time using constant space complexity.O(nlogn),我们可以第一时间想到常用的二路归并排序,快速排序和堆排序,其中快排和堆排只适用于线性表,即数组,故这道编程题毫无疑问用二路归并排序;* 1. 利用一...
分类:其他好文   时间:2014-11-19 07:24:33    阅读次数:225
大-小顶混合堆的实现与应用(a min-max heap)
一般情况下我们使用的堆都是大顶堆或者小顶堆,其能实现在常数时间内获得数组的最大值或者最小值,同时满足在对数时间内删除和插入元素。但是如果要同时实现即能在常数时间内获得最大值和最小值,又能在对数时间内删除和插入元素,通常情况下的堆就不能满足上述要求了。为此介绍一种新的数据结构min-max heap min-max heap 是一颗完全二叉树,但是二叉树的奇数层存的是max元素,偶数层存的是min...
分类:其他好文   时间:2014-11-19 01:48:30    阅读次数:378
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!