下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上#include<iostream>using namespace std;typedef int ElemType;/直接插入排序void InsertSort ( ElemType A, int n )int i, j;ElemType x;for ( i=1; i<n; i+ ) /进行n-1次插入 x = Ai; /准备插入第i个元素 for ( j=i-1; j>=0; j- ) /从第i-1个开始往前找插入点 if ( x< Aj ) Aj+1=Aj; else break; Aj+1=x; /插入/直接选择排序void Se
2、lectSort(ElemType A, int n) int i, j, k; ElemType x; for ( i=0; i<=n-2; i+ ) /每一趟选择最小元素并与Ai交换 k=i; for (j=i+1; j<=n-1; j+) /查找最小元素的下标 if (Aj<Ak) k=j; if (k!=i) /交换x=Ai; Ai=Ak; Ak=x; /堆排序void Sift(ElemType A, int n, int i);void CreatHeap(ElemType A, int n) int i; for( i = (n-2)/2; i >= 0;
3、 i-) Sift(A, n, i); /调整Ai.n-1使之为一个堆 void Sift(ElemType A, int n, int i) / 调整Ai.n-1成为一个堆(它的左右子树已是一个堆) ElemType x=Ai; int j = 2 * i + 1; / j为i的左孩子 while (j <= n-1) / i有左子树 if ( j +1 < n && Aj< Aj+1) j+; / 使j指向左右孩子中排序码大的孩子 if ( x< Aj) /将Aj上移,以便向下筛 Ai=Aj; i=j; j=2*i+1; else break; Ai
4、=x; void HeapSort(ElemType A, int n) /A为待排序表,n为表的长度 int i; ElemType x; CreatHeap(A, n); / 把A建成一个堆 for(i=n-1;i>=1;i-) x = A0; /第个元素与第i个元素交换 A0 = Ai; Ai = x; Sift(A, i, 0); /调整A0.i-1使之为一个堆 /冒泡排序void BubbleSort( ElemType A, int n )int i, j, flag; /flag为交换标记ElemType x;for (i=1; i<=n-1; i+) / 最多n-1
5、趟排序 flag=0; /假设本次没有交换 for (j=n-1; j>=i; j-) /第i 趟if ( Aj< Aj-1) flag=1; /出现交换x=Aj; Aj=Aj-1; Aj-1=x; if (flag=0) return; /快速排序void QuickSort(ElemType A, int s, int t) /递归算法,对区间As At 进行快速排序int i=s+1, j=t;ElemType temp, x = As; /第一个为基准元素while ( i<=j ) while ( i<=j && Ai<= x ) i+;
6、 /从左到右 while ( i<=j && Aj>=x) j-; /从右到左 if ( i < j ) temp=Ai; Ai=Aj; Aj=temp; i+; j-; if (s!=j) /交换基准元素 As=Aj; Aj=x; if (s<j-1) QuickSort(A, s, j-1); /处理左区间 if (j+1<t) QuickSort(A, j+1, t); /处理右区间void main() int i,j,n,N=5;cout<<"请输入个整数:" ElemType A5;for(j=0;j&l
7、t;N;j+)cin>>Aj;cout<<"排序前为:"<<endl;for(i=0;i<N;i+)cout<<Ai<<endl;cout<<"直接插入排序:"<<endl;InsertSort (A, N );for(i=0;i<N;i+)cout<<Ai<<endl;运 /运行结果如右;cout<<"直接选择排序:"<<endl;SelectSort(A, N);for(i=0;i<N;i+)cout<<Ai<<endl; cout<<"堆排序:"<<endl;HeapSort(A, N); for(i=0;i<N;i+)cout<<Ai<<endl; cout<<"冒泡排序:"<<endl; BubbleSort(A, N); for(i=0;i<N;i+)cout<<Ai<
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 恶性心律失常急救护理:病情观察与处置要点
- 2026年通信行业高温季节网络维护方案
- 头颈部肿瘤放化疗患者症状网络的时序演变及护理策略总结2026
- 公司开工讲话稿
- 严查安全培训漏洞讲解
- 小学消防安全主题作文范文
- 福建消防安全专家指南
- 2026年食品安全监管规划方案
- 2.1 一元二次方程(基础达标)(原卷版)
- 《趣味学自我调节|让课堂告别枯燥 爱上学习》
- 2026四川成都农业科技中心第二批招聘17人备考题库及1套完整答案详解
- 仓库货物收发验收管理规范
- (2026年)检验检测机构资质认定“一单一库”的学习与解读(2026年实施)课件
- 24J113-1 内隔墙-轻质条板(一)
- 《高中信息技术创新教学指南(2025版)》
- 电力工程改造施工技术方案
- 初中班主任考核积分细则表
- 医院妇产科绩效考核细则方案
- 2025年河北机关事业单位工人技能等级考试(服务员·技师)在线题库及答案
- 2024八年级数学下册 第20章 函数20.2函数 1函数说课稿(新版)冀教版
- 电脑绣花制版设计下34课件
评论
0/150
提交评论