
直接插入排序直接选择排序堆排序快速排序冒泡排序的实验报告.docx
3页本文格式为Word版,下载可任意编辑直接插入排序直接选择排序堆排序快速排序冒泡排序的实验报告 XXX大学测验报告 学院:计算计科学与信息学院 专业:数字媒体技术 班级:数媒091 姓名 测验时间 测验工程名称 测验目 学号 指导教师 测验组 劳绩 1.纯熟掌管依次表和有序表的查找方法 2.熟谙静态查找树的构造方法和查找算法,纯熟掌管二叉排序树的构造方法和查找算法 的 3.掌管描述查找过程的判定树的构造方法,掌管各种查找方法在等概率处境下查找告成时的平均查找长度 1.了解散列表的构造和查找算法 实2.了解各种排序方法的执行过程及其所依据的原那么,掌管各种排序方法时验间繁杂度的分析方法 要3.纯熟掌管希尔排序、快速排序、堆排序等高效排序算法 求 测验原理 测验仪器 测验步骤 1、 确定数据的布局 2、 编写头文件、函数及变量声明 3、 设计子函数 4、 写主函数,并调用子函数 5、 调试编写好的程序 奔腾2计算机或以上机型、visual c++编程环境 在visual c++编程环境中编写程序源代码,并编译、运行程序结果 6、 编译正确后,运行,查看分析结果 程序1 内部排序算法对比 [问题描述] 编写常用的排序算法,并编写主程序测试。
[根本要求] (1)对以下常用的6种排序算法举行对比:直接插入排序、直接选择排序、堆排序、快速排序、冒泡排序 (2)待排序表的表长不小于100;其中的数据用自行设计 (3)对结果作出分析 测验内容 直接插入排序 void InsertSort ( ElemType A[], int n ) { int i, j; ElemType x; for ( i=1; i=0; j-- ) { //从第i-1个开头往前找插入点 if ( x.stn = 1; i- -) { x = A[0]; //第0个元素与第i个元素交换 A[0] = A[i]; A[i] = x; Sift(A, i, 0); //调整A[0..i-1]使之为一个堆 } } 冒泡排序 void BubbleSort( ElemType A[], int n ) { int i, j, flag; //flag为交换标记 ElemType x; for (i=1; i=i; j--) //第i 趟 if ( A[j].stn < A[j-1].stn ) { flag=1; //展现交换 x=A[j]; A[j]=A[j-1]; A[j-1]=x; } if (flag==0) return; } } 快速排序 void QuickSort(ElemType A[ ], int s, int t) { //递归算法,对区间 A[s] ~A[t] 举行快速排序 int i=s+1, j=t; ElemType temp, x = A[s]; //第一个为基准元素 while ( i<=j ) { while ( i<=j //从左到右 if ( i < j ) { while ( i<=j //从右到左 temp=A[i]; A[i]=A[j]; A[j]=temp; } i++; j--; } if (s!=j) { //交换基准元素 A[s]=A[j]; A[j]=x; } if (s
