下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高职模具设计与制造(模具工程创意)试题及答案
- 2026年美容咨询教学(美容咨询应用)试题及答案
- 2025年大学历史学(世界近代史专题)试题及答案
- 2025年大学幼儿发展与健康管理(幼儿心理学应用)试题及答案
- 2026年蒸蛋食品加工机维修(加工机调试技术)试题及答案
- 2025年高职中医康复技术(推拿理疗实操)试题及答案
- 2025年中职(学前教育)幼儿卫生保健期中测试试题及答案
- 2025年高职网络技术(云计算应用基础)试题及答案
- 2025年大学统计(统计软件应用基础)试题及答案
- 2025年中职化学反应原理(反应原理分析)试题及答案
- 2026 年高职应用化工技术(化工设计)试题及答案
- 2026年山西供销物流产业集团面向社会招聘备考题库及一套完整答案详解
- 城管执法文书培训课件
- 人工智能对中国新能源汽车出口技术复杂度的影响研究
- 小学食堂食品安全培训记录
- 东呈集团内部控制中存在的问题及对策研究
- 《基础护理学》-卧有病人床更换床单法(操作流程+评分标准)
- 加气站施工安全培训课件
- GB/T 45305.2-2025声学建筑构件隔声的实验室测量第2部分:空气声隔声测量
- 天然气供气工程安全交底
- 航天器多功能散热结构设计-洞察及研究
评论
0/150
提交评论