读书笔记之堆排序
来源:互联网 发布:linux vim 跳到指定行 编辑:程序博客网 时间:2024/05/19 05:04
堆排序。
此处所说的堆和内存存储中的堆是两码事。
大顶堆,是一棵完全二叉树,树根的关键字最大,其子树也是符合大顶堆的概念,存储上可以用数组实现。
堆的一个很明显的用途是找表中的最大关键字非常快,取树根即可。
1、堆排序的第一个步骤是:建堆
把无序表调整为一个大顶堆:
文件buildheap.c
2、其次是对大顶堆取树根,即删除树根,然后再对堆进行调整,使其符合大顶堆结构。删除堆顶元素
文件delheap.c
3、对堆进行排序。堆排序
文件heapsort.c
文件heapsort.h
文件main.c
结果示例:
[lanux@localhost--Debug--16:30]$./heapsort
array number fallow as:
597 28 530 832 822 433 127 93 35 466
402 255 557 753 555 624 875 367 435 412
33 692 365 827 333 837 618 626 760 316
218 949 334 738 383 748 171 500 434 196
559 826 43 116 181 588 730 56 547 757
459 570 51 416 990 967 845 608 593 605
516 403 157 443 734 530 783 895 623 217
684 182 635 319 880 806 500 212 853 47
959 904 210 602 912 200 569 757 400 163
955 907 556 704 942 882 826 725 778 51
The heap sort follow:
28 33 35 43 47 51 51 56 93 116
127 157 163 171 181 182 196 200 210 212
217 218 255 316 319 333 334 365 367 383
400 402 403 412 416 433 434 435 443 459
466 500 500 516 530 530 547 555 556 557
559 569 570 588 593 597 602 605 608 618
623 624 626 635 684 692 704 725 730 734
738 748 753 757 757 760 778 783 806 822
826 826 827 832 837 845 853 875 880 882
895 904 907 912 942 949 955 959 967 990
[lanux@localhost--Debug--16:31]$
2010-12-03 17:19:13
- 读书笔记之堆排序
- 《算法导论》读书笔记--堆排序
- 排序之堆排序
- 排序之堆排序
- 排序之堆排序
- 排序之堆排序
- 排序之堆排序
- 排序之堆排序
- 排序之堆排序
- 排序之堆排序
- 排序之堆排序
- 排序之堆排序
- 排序之堆排序
- 排序之堆排序
- 排序之堆排序
- 排序之堆排序
- 排序之堆排序
- 排序之堆排序
- asp.net 最简单的处理System.Data.OracleClient requires Oracle client software version 8.1.7 or greater
- 常用的JPA标记 hibernate annotation 参考
- strlen和sizeof的区别
- SCP 实现信任连接
- 关于动态控件的事件响应和控件的生命周期的理解(应用)
- 读书笔记之堆排序
- Qt使用正则表达式匹配中文GBK
- gushoyu 2010 12 03.17:02:56
- SQL Server语句优化详解
- 中小企业ERP系统选型四个标准分析
- GR/IR科目的月末调整
- MyGeneration + EasyObjects 构建系统开发中的业务实体与数据访问层
- 从零开始学习iphone开发课程
- Oracle常见SQL分页实现方案