堆排序和快速排序
来源:互联网 发布:chrome ubuntu 16.04 编辑:程序博客网 时间:2024/05/28 23:09
点击(此处)折叠或打开
- #include<stdio.h>
- typedef struct
- {
- int key;
- }keytype;
- typedef struct
- { keytype r[100];
- int length;
- }sqlist;
- /*创建顺序表*/
- void creat(sqlist *l)
- {
- int i,key;
- printf("please intput it's length:");
- scanf("%d",&l->length);
- printf("\n\nplease intput %d data\n",l->length);
- for(i=1;i<=l->length;i++)
- {
- scanf("%d",&key);
- l->r[i].key=key;
- }
- }
- /*显示顺序表*/
- void display(sqlist *l)
- { int i;
- for(i=1;i<=l->length;i++)
- printf("%-4.2d",i);
- printf("\n");
- for(i=1;i<=2*l->length;i++)
- printf("--");
- printf("\n");
- for(i=1;i<=l->length;i++)
- printf("%-4.2d",l->r[i].key);
- }
- /*调整h->r[s]的关键字,使h->r[s]成为一个大顶堆*/
- void heapadjust(sqlist *h,int s,int m)
- { keytype rc;
- int j;
- rc=h->r[s];
- for(j=2*s;j<=m;j*=2)
- { if(j<m&&h->r[j].key<h->r[j+1].key)
- ++j;
- if(rc.key>=h->r[j].key) break;
- h->r[s]=h->r[j];
- s=j;
- }
- h->r[s]=rc;
- }
- /*对顺序表h进行堆排序*/
- void heapsort(sqlist *h)
- { keytype rc;int i;
- for(i=h->length/2;i>0;--i)
- heapadjust(h,i,h->length);
- for(i=h->length;i>1;--i)
- { rc=h->r[1];
- h->r[1]=h->r[i];
- h->r[i]=rc;
- heapadjust(h,1,i-1);
- }
- }
- /*主函数*/
- void main()
- { sqlist t;int i;
- creat(&t);
- printf("\n\n");
- heapsort(&t);
- printf("\n");
- printf("\nheapsort means:\n");
- display(&t);
- getch();
- }
点击(此处)折叠或打开
- #include<stdio.h>
- typedef struct
- {
- int key;
- }keytype;
- typedef struct
- { keytype r[100];
- int length;
- }sqlist;
- /*创建顺序表*/
- void creat(sqlist *l)
- {
- int i,key;
- printf("please intput it's length:");
- scanf("%d",&l->length);
- printf("\n\nplease intput %d data\n",l->length);
- for(i=1;i<=l->length;i++)
- {
- scanf("%d",&key);
- l->r[i].key=key;
- }
- }
- /*交换顺序表中子表r[low...high]的记录,使枢轴记录到位,并返回其所在的位置*/
- int partion(sqlist *l,int low,int high)
- { int pivotkey;
- l->r[0]=l->r[low];
- pivotkey=l->r[low].key;
- while(low<high)
- { while(low<high&&l->r[high].key>=pivotkey)
- --high;
- l->r[low]=l->r[high];
- while(low<high&&l->r[low].key<=pivotkey)
- ++low;
- l->r[high]=l->r[low];
- }
- l->r[low]=l->r[0];
- return low;
- }
- /*快速排序*/
- void Qsort(sqlist *l,int low,int high)
- { int pivotloc;
- if(low<high)
- { pivotloc=partion(l,low,high);
- Qsort(l,low,pivotloc-1);
- Qsort(l,pivotloc+1,high);
- }
- }
- /*显示顺序表*/
- void display(sqlist *l)
- { int i;
- for(i=1;i<=l->length;i++)
- printf("%-4.2d",i);
- printf("\n");
- for(i=1;i<=2*l->length;i++)
- printf("--");
- printf("\n");
- for(i=1;i<=l->length;i++)
- printf("%-4.2d",l->r[i].key);
- }
- /*主函数*/
- void main()
- { sqlist t;int i;
- creat(&t);
- Qsort(&t,1,t.length);
- printf("\n\n");
- printf("quicksort means:\n");
- display(&t);
- getch();
- }
0
上一篇:有向图的深度和广度搜索
下一篇:ADO.net实现数据查询表的分页
相关热门文章
- 欢迎miyostudio26在ChinaUnix...
- 30岁女教师开宝马下乡教书 每...
- ok6410的Nand Flash驱动
- 建筑工程管理软件信息管理的目...
- 罗一平:建设美术馆的理想并未...
- test123
- 编写安全代码——小心有符号数...
- 使用openssl api进行加密解密...
- 一段自己打印自己的c程序...
- sql relay的c++接口
- 怎么样找出BIND中查询并发量多...
- 可有人在实际的openstack生产...
- 如下makefile如何编写
- sqlldr 参数配置
- 讨论一下各位所管理的mysql生...
给主人留下些什么吧!~~
ryysoft2012-06-21 16:05:12
精通C语言,首选锐英源,www.wisestudy.cn,全国性价比最高
回复 | 举报
评论热议
- 快速排序和堆排序
- 堆排序和快速排序
- 堆排序和快速排序
- 快速排序和堆排序
- 快速排序和堆排序
- 堆建立和堆排序,快速排序
- 排序算法-快速排序和堆排序
- 快速 和堆 排序算法
- 快速排序/堆排序
- 插入排序、合并排序、堆排序和快速排序
- 介绍堆排序、希尔排序和快速排序
- 快速排序,堆排序和归并排序谁更快?
- 快速排序,堆排序和归并排序谁更快?
- 快速排序,堆排序和归并排序谁更快?
- 比较排序之堆排序和快速排序
- 快速排序,堆排序解析
- 快速排序VS堆排序
- 堆排序与快速排序
- Exercises 4.2 E2 (a)
- 稀疏矩阵的存储与快速转置
- 二叉树
- 二叉树的深度和分支节点数
- 有向图的深度和广度搜索
- 堆排序和快速排序
- ADO.net实现数据查询表的分页
- 检索进程所使用的所有模块的列表
- jQuery语法
- silverlight treeview 中添加复选框
- 关于 jsp servlet 将Excel表格内容写进数据库,将数据库导出到Excel中。(一)
- 关于 jsp servlet 将Excel表格内容写进数据库,将数据库导出到Excel中。(二)
- uploadify的 onComplete事件使用详细说明
- 网络模型,Epoll介绍,和几种其他模型的比较!
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
5个多月引产
多少天引产
引产的费用
引产指征
3个半月引产
引产很痛吗
引产的过程
引产多钱
怎么样引产
8个月做引产
引产后遗症
8个月引产
什么引产
引产引产
引产原因
引产价格
关于引产
引产危险吗
怎么引产
多久引产
中孕引产
引产步骤
引产全过程
做引产时间
7个多月引产
引产术疼吗
引产如何做
引产哪里好
引产好痛
怎么做引产
引产疼么
引产后多久来月经
引产注意事项
引产后恶露多久能排完
无痛引产过程经历诉说
怀孕4个月引产亲身经历
引产后20天只插几下有事吗
引产什么意思
其实引产也没那么可怕
6个月无痛引产过程经历诉说
引产后饮食注意事项