堆排序
来源:互联网 发布:超级本 知乎 编辑:程序博客网 时间:2024/06/05 22:32
#include<stdio.h>#include<stdlib.h>#include<iostream>using namespace std;typedef struct{ int *r; int length;}sqlist;void createlink(sqlist &L){ int n; L.length=0; cout<<"输入链表长度:"<<endl; cin>>n; L.r=(int*)malloc((n+1)*sizeof(int)); int i; cout<<"输入链表元素:"<<endl; for(i=1;i<=n;i++) { cin>>L.r[i]; ++L.length; }}void print(sqlist &L){ int i; cout<<"输出链表元素:"<<endl; for(i=1;i<=L.length;i++) cout<<L.r[i]<<" "; cout<<"\n";}void heapadjust(sqlist &L,int s,int m){ int j; int rc=L.r[s]; for(j=2*s;j<=m;j*=2) { if(j<m&&L.r[j]<L.r[j+1]) j++; if(!(rc<L.r[j])) break; L.r[s]=L.r[j]; s=j; } L.r[s]=rc;}void heapsort(sqlist &L){ // freopen("C:\\Users\\Administrator\\Desktop\\1.txt","r",stdin); createlink(L); int i,temp; for(i=L.length/2;i>0;i--) heapadjust(L,i,L.length); for(i=L.length;i>1;i--) { temp=L.r[1]; L.r[1]=L.r[i]; L.r[i]=temp; heapadjust(L,1,i-1); } cout<<"堆排序:\n"; print(L);}int main(){ sqlist l; heapsort(l); return 0;}
阅读全文
0 0
- 堆及堆排序
- 堆/堆排序特点
- 【二叉堆、堆排序】
- 二叉堆 & 堆排序
- 二叉堆 & 堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆和堆排序
- 堆排序(最大堆)
- 堆和堆排序
- 堆和堆排序
- 堆及堆排序
- 堆和堆排序
- 堆与堆排序
- 07-参数
- MFC窗口最大化的问题
- Session
- MySQL存储过程和自定义函数、Navicat、创建存储过程和函数、调用存储过程和函数、三种方式、In和Out类型参数、
- jiecaovideoplayer的简单使用
- 堆排序
- Visual studio 插件推荐
- 《深入理解计算机系统》—优化程序性能
- 【Scikit-Learn 中文文档】9 高斯过程
- HDOJ FatMouse' Trade JAVA 1009
- 仿京东分类实现
- 网站开发中有利于SEO优化的方法
- ijkplayer的使用解析-视频播放,直播
- angular js 循环数据(死数据) 添加数据 隔行换色 单个删除 排序