说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

C语言实现堆排序(Heap Sort)

HTML文档下载 WORD文档下载 PDF文档下载
对于大量的记录的排序来说,堆排序是一种非常有效的方法。如果排序的记录数不大,则堆排序的优越性并不明显,而且还需要一个供交换时暂存记录的辅助空间。

 

对于大量的记录的排序来说,堆排序是一种非常有效的方法。如果排序的记录数不大,则堆排序的优越性并不明显,而且还需要一个供交换时暂存记录的辅助空间。

 

堆排序的时间复杂度是O(nlgN),与快速排序达到相同的时间复杂度。但是在实际应用中,我们往往采用快速排序而不是堆排序。这是因为快速排序的一个好的实现,往往比堆排序具有更好的表现。堆排序的主要用途,是在形成和处理优先级队列方面。另外,如果计算要求是类优先级队列(比如,只要返回最大或者最小元素,只有有限的插入要求等),堆同样是很适合的数据结构。

 

 

测试代码:

 

#include <stdio.h>#define MARK 0static a[8] = {MARK,25,4,36,1,60,10,58,};int count = 1;void heap(int n);void adjust(int i,int n);int main(void){	int i;	printf("源数据为:");	for(i = 1;i<8;i++)		printf("%5d",a[i]);	heap(7);	printf("\n排序后的数据为:");	for(i = 1;i<8;i++)		printf("%5d",a[i]);	printf("\n");	return 0;}void heap(n)int n;{	int i,j,t;	for(i =n/2;i>0;i--)		adjust(i,n);	printf("\n初始化成堆===>   ");	for(i = 1;i < 8;i++)		printf("%5d",a[i]);	for(i = n-1;i>0;i--)	{		t = a[i+1];		a[i+1] = a[1];		a[1] = t;		adjust(1,i);		printf("\n第%2d步操作结果===>",count++);		for(j = 1;j<8;j++)			printf("%5d",a[j]);	}}void adjust(i,n)int i,n;{	int j,k,r,done=0;	k = r = a[i];	j = 2*i;	while((j<=n)&&(done==0))	{		if(j<n)		{			if(a[j]<a[j+1])				j++;		}		if(k>=a[j])			done = 1;		else		{			a[j/2] = a[j];			j = 2*	j;		}	}	a[j/2] = r;}

 

 

 

Wordament:首款支持Xbox Live成就的iPhone游戏 使用Storm实现实时大数据分析! 孙博凯:微软日益开放,Windows Azure更加拥抱开源 大数据计算:如何仅用1.5KB内存计算十亿个不同的对象 我们为什么爱EC2和S3却彻底抛弃EBS 不畏Surface:诺基亚明年或推Windows平板 Linus Torvalds:用户程序被破坏永远是Kernel的问题! Python高效编程技巧 苹果加速硬件迭代 iPad5原型机曝光 宏碁推99美金平板 价格创历史新低 黑莓10全键盘版代号N系列,谍照泄露! 那些年我们用过的互联网产品 QQ亿级业务演变:从文件、音视频说起 少年企鹅的成长之旅:QQ体验设计发展史 全球超算Top 500:Linux已占93.8%,Windows或将消失 AWS东部地区再次发生宕机 Netflix等网站受影响 2012年全球最美的十个数据中心 CodeCards:程序员电子贺卡DIY项目 微软首席战略官Craig Mundie将于2014年退休 LG明年CES展新款智能电视 增强自然语言识别 微软包嘉峰:企业用户向Windows 8迁移加速 2013年10个科技预测 三维打印技术将成主流 能省电99.96%:微软开发基于云的GPS技术 十个最有用的云数据库 开源产品系列:企业级Web框架web2py 让针对Webkit优化的网站兼容WP8 IE10 CMDN Club 24期:互联网产品的演进之路——从QQ谈互联网14年进化史 360安全浏览器发布“照妖镜”和“网站名片”功能 Windows Server 2012实用教程:添加Hyper-V管理器 为何Google弃置GCE和GAE选择AWS? 2012移动应用盘点:乱象丛生 最佳与奇葩共舞 没有权限打开names.nsf的问题? IE浏览器显示的字体不是默认的,变成了空心字体。如何改成系统默认的字体?(win98+IE5.0) 寻找高手 关于协议的问题 求助!能把一个字段内容分解的函数? Servlet问题?(急等,立结) oleconnection 支不支持sybase的连接,不通过odbc如何连接Sybase高手请进!急啊!!! 关于return的问题 为何内存消耗在不断增长? 浏览器类型 求文件长度? 用DELPHI 开发过ORACLE数据库的高手帮忙,我现在遇到个问题, BCB消息机制问题, 关于MFC 请教:jar问题 零为什么不能做为除数。 菜单资源ID得问题 请问高手,实验室局域网内部下载速度很慢,会是什么原因造成的? 如何利用Datareport做出好看一点的报表? Grid的列怎么来调整? GDI+类使用new操作符问题 有人在吗? 请看看这一样个SQL语句 页面上有两个相连的表格时,中间的边框变得很粗,能否做到和一个表格的效果? 帮我写一个简单的和SERVER2000查询的例子50分相送!! 怎样将别人给我的数据库文件导到本地? 近日较忙,散分200 请问将脚本写在页面和写在J文件里有什么不同?我写在页面上一切正常,可是把脚本防在一个JS文件就报错 ===好几天,ADO 连接oracle数据库的问题.还搞定。大伙给看看 DBLookupComboBox的疑问 我是福建省福州的.程序员在哪儿报名呀?? 如何让录入页面的信息能自动保存~! 编写函数 有谁知道华工的计算机应用的复试考那几门?另外请问关于其他不公布复试科目的学校可以通过电话询问复试科目吗? 想不通,请教?(802.1x) 一个有关浏览器的问题,高手必进! 那位兄弟推荐一款文件夹加密的软件! 发布一套完整的网站系统,up就给分 怎么样能够把文件上传到服务器的任意目录下?? java同mysql连接不上: Server configuration denies access to data source 大家是如何看别人的源程序的呀~介绍一下自己的经验嘛~ 字符串A与B,找出A,B的最大公共子串? 我从TPanel继承一个控件,此控件能有OnMouseWheel事件吗?如果有,如何写? 新手的不解 谁能给个 ado 访问 mssql 最简单的代码例子? 关于Unicode的两个问题 sjsj(悠行者) 进来拿分。 100分送给大家!!! 用大数据库建立小数据库有没有好办法? 请问vc.net带的水晶报表能否用于vc6.0? 有没有vc开发水晶报表的例子? RedHat7.2可以为什么RedHat8.0就不行? 怎样在对话框的左上角加上自己的图标?替代掉VC自己带的那一个? 植物细胞没有溶酶体吗?教科书46页上画的图 明明就是动物细胞和植物细胞都有溶酶体呀 去除乙烷中少量乙烯?求教答案是通入足量溴水中那么乙烯发生了加成反应,生成溴乙烷,是气体么?如果是气体不是和乙烷混一起拉? 天冷时,长安汽车开暖风是没有暖风,都是冷风? 纤维素每个单元为什么会有3个羟基以及形成纤维素的方式 李大钊生平简介 自动空调怎么刚开始开暖风有,跑个50公里就是自然风了 羟基纤维素的价格是多少? 某气体能使红色石蕊试纸变蓝,结论:该气体为NH3是否正确? 假设需求曲线为Q=100-2P分别计算价格P=1,25和49的价格弹性. 硅羟基活性与纤维素上羟基活性哪个大 蚯蚓身体的大小可以用测量什么的长度和什么的长度来表示 给定的某商品的需求曲线为QD=10-2P.求其点弹性为多少?怎样调整价格才能实现总收益增加? 属于等产量曲线的特征是( ) A.离原点越远,代表的产量越大 B.等产量线凹向原点 C.对同一厂商而言,两条等 碳氨与盐酸反应生成什么?加热生成什么?什么气体会使湿润的红色石蕊试纸变蓝? 【急求】已知某商品需求曲线为D=100-2P,供给曲线为S=50+3P,请计算其均衡价格和均衡数量.如果政府对该商品实行支持价格政策,支持价格为20,将会出现多少产品过剩. 供给曲线与横轴交于原点右方说明了什么那么它的供给弹性的取值范围是什么?为什么 内燃机同步练习题(1)做功冲程中气体做的功一台单缸四冲程柴油机活塞的横截面积为600cm ,活塞的行程是100mm,做功冲程的平均压强是 3.5 ×105Pa.,求:(2)若柴油机每分钟完成500个工作循环, 某商品市场需求函数为q=100-5p,假设供给曲线无线弹性,当价格从10上升到12时,社会福利损失为()要详解A 10 B 20 C 12 D 15 我知道纤维素的每个葡萄糖结构单元有三个羟基,可具体的结构式是什么?没人知道吗? 内燃机的一个人工作循环有四个冲程,压缩冲程中( )能转过为( )能 设需求曲线的方程为Q=10-2P,求其点弹性为多少?怎样调整价格,可以使总收益增加? 6.产品转换曲线() A.总是从原点向外凸出的曲线 B.总是从原点向外凹下的曲线谢谢了, 一个关于内燃机的常识题四冲程内燃机在不做功冲程时,活塞为什么还会运动呢? 蜗牛有视觉吗? 急需用油膜法测分子直径的数据 衡量组织兴奋性高低的指标是 用酷组词 在敌人的( )面前,李大钊仍是那样安定,沉着. 如何用氯乙烷制备1-丁醇?求每个步骤的试剂和产物, 写出电极反应和电池反应 李大钊在敌人的法庭上坚定、沉着.(改写为感叹句) 请问羟丙基甲基纤维素可以不可以做洗洁精的增稠剂? 蜗牛的质量有多大?先用天平测出一只蜗牛的质量为------------,再测出20只蜗牛的 市场供给曲线定义 羧甲基纤维素加在洗涤剂中,有什么作用,是乳化剂吗? 一只蜗牛的质量是多少? 蛋白质如何产生 经过哪些细胞器顺便问下 中心体做什么的 求配图 微观经济学 1.完全竞争市场上企业的供给曲线 2.完全竞争市场的供给曲线 解释两个的原因 1只蜗牛质量是多少 随身带点药 翻译成英语 微观经济学 求配图 1.完全竞争市场上企业的供给曲线 2.完全竞争市场的供给曲线 解释两个的原因 一只蜗牛的质量为? 赵州桥和卢沟桥的结构图与数据及特点快点 洪水用英语怎么说 二十只蜗牛的质量是多少?谁知道20只蜗牛的质量!不要乱答! 秋天有哪些动物声音 如图所示,虚线区域内有一垂直纸面向里的匀强磁场,磁场宽度为L,磁场强度大小为B.总电阻为R的直角三角形导线框,两直角边长分别为2L,L,当该线框以垂直于磁场边界的速度v匀速穿过磁场 我 汽车天然气瓶进了空气怎么办?少量空气影响使用吗?就是经常加气,管子里的一部分空气 需求曲线问题(需求曲线的弹性)明天要考微观了,需求曲线的弹性大于一,是一个笼统的说法,还是指需求曲线在某一区间内大于一,小于一.我知道弹性在需求曲线上是不断变化的,无论是弧弹 为什么Mg燃烧有火焰而Fe燃烧是火星 被困于洪水的人们英语怎么说 蜗牛的质量有多大? 为什么溶酶体自噬.而不会分解其他细胞器如题,是说细胞器膜里面的水解酶分解膜后为什么不会分解其他细胞器?我是说蝌蚪的尾巴消失后.成熟的水解酶流出后.为什么不会破坏其他的细胞器 由于洪水,地面都湿了.用英语怎么说 蜗牛有多大 植物细胞有溶酶体吗植物细胞内有溶酶体,因为它和动物细胞一样都是有蛋白质组成的骨架而且其内的生命活动会有许多死亡的细胞器膜等,这些都需要水解酶的分解来完成而水解酶又存在于 如何用乙醛制丁醇, 世界上最大的蜗牛有多大啊 高等植物细胞具有溶酶体吗?RT 乙醛如何转化成丁醇? 白居易的诗 外交部:中印重申双方不将其军事能力用日民主党前干事长年内成立新团体 被疑日本拟在多个城市开设赌场 年收入可达美国十岁男孩弑父案即将宣判 孩子去处贝卢斯科尼女友否认系同性恋 索赔千万杭州市市管领导干部任前公示通告俄外交官被指在美国招募间谍 美联邦调法国研究员:想象力丰富者比较能拒绝眼韩军警在韩日争议岛演练登陆 旨在抵御伊核问题引美以分歧 美同意合法保留以贝卢斯科尼女友否认系同性恋 索赔千万法德寻求与美就窃听丑闻展开对话中国三大舰队首汇西太平洋 联演常态化中国转型\"旅游输出大国\" 放宽对联合国日中国赴刚果(金)维和官兵展风泰国僧王百岁圆寂英村庄半夜传神秘怪声 专家称是鱼求偶奥巴马医改法案成美国会听证会上“箭靶韩军警在韩日争议岛演练登陆 旨在抵御美刊:中国富人国外买房欲圆“西方梦”乌克兰传奇拳王参选总统 支持率高于现阿尔及利亚总理今访沪漫画诗论苏州河上的桥,无价之宝上海之春东艺推2500张公益票老建筑“穿新衣”怎能任性我骄傲,我是新时代的劳动者“是妈妈的舞台,不是诉苦台”每个板块都有上海渊源的画家体面劳动:从深化收入改革做起江堤若人流过半将单循环防对冲上海启动“城市更新”致力内涵增长埃及国防部长访沪刚果客人一行来访台湾名品博览会昨在沪开幕“四朵金花”别样娇艳天气预报“问题车”花300元就能免检上路上海卫生援疆再发力创新之都首先要有“创造阶层”“一带一路”构想得到热情响应“黄金鱼”入住海洋水族馆
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘