软件基础实验报告(4)

2019-04-08 18:31

cout<

cout<<\查找成功!\ } else {

cout<<\查找失败\ } }

运行结果如图

实验总结和心得:

这次试验,我们简单的了解查找算法,学会了最基本最简单的的查找算法,想要真正掌握查找算法,还需要自己多多练习才行!

实验4 排序算法

实验题目:三种简单排序算法的原理

实验目的:掌握插入排序、选择排序和起泡排序算法的工作原理 实验内容:用vc++6.0建立三个程序,实现三种排序算法。 1.排序的概念

排序是计算机内经常进行的一种操作,其目的是将一组同类型的记录序列调整为按照元素关键字有序的记录序列。例如将学生记录按学号排序,将课程记录按课程编码排序。

排序的形式化定义为:假设含n个记录的序列为{ R1, R2,?,Rn },其相

应的关键字序列为{ K1, K2,?,Kn }。这些关键字相互之间可以进行比较,即在它们之间存在着这样一个关系Kp1≤Kp2≤?≤Kpn,按此固有关系将最初的记录序列重新排列为{ Rp1, Rp2, ?,Rpn }的操作称作排序。 2.插入排序的原理

插入排序方法的基本思想是:将记录分为有序和无序两个序列,假定当插入第k个记录时,前面的R1,R2,?,Rk-1已经排好序,而后面的Rk,Rk+1,?,Rn仍然无序。

这时用Rk的关键字与Rk-1的关键字进行比较,若Rk小于Rk-1则将Rk-1向

后移动一个单元;再用Rk与Rk-2比较,若Rk小于Rk-2则将Rk-2向后移动一个单元,依次比较下去,直到找到插入位置即将Rk插入。初始状态可以认为有序序列为{R1}。 3.选择排序的原理

选择排序的基本思想是:将记录分为有序和无序两个序列,假定第k趟排序时,前面的R1,R2,?,Rk-1已经排好序,而后面的Rk,Rk+1,?,Rn仍然无序,则选择Rk到Rn中的关键字最小的记录与Rk交换,交换后有序序列增加了第k个记录。当第n-1趟选择执行完,待排序记录只剩下1个,就不用再选了。在初始状态可以认为有序序列为空。

4.起泡排序的原理

起泡排序的基本思路是:第一趟排序对全部记录R1,R2,?,Rn自左向右顺次两两比较,若Rk大于Rk+1则交换Rk和Rk+1( k=1, 2,?, n-1)。

第一趟排序完成后Rn成为序列中最大记录。

第二趟排序对序列前n-1个记录采用同样的比较和交换方法,第二趟排序完

成后Rn-1成为序列中仅比Rn小的次大的记录。

第三趟排序对序列前n-2个记录采用同样处理方法。如此做下去,最多做n-1

趟排序,整个序列就排序完成。 实验结果

1、插入法排序代码及结果: #include\#include #include int a[10],b[10]; void insertSort() {

int i,j; int temp; b[0]=a[0];

for(i=1;i<10;i++) {

temp=a[i];

for(j=i;j>0;j--) {

if(temp

b[j]=b[j-1]; b[j-1]=temp; } else {

b[j]=temp; break; } } } }

void main(void)

{

int i;

cout<<\请输入十个数字:\ for(i=0;i<10;i++) {

cin>>a[i]; }

insertSort(); for(i=0;i<10;i++) {

cout<

cout<<\}

运行结果如图

2、选择排序代码及结果:

#include\#include #include int a[10],b[10]; void insertSort() {

int i,j,k; /* 按升序进行选择排序*/ int max;

max=a[0];

for(i=0;i<10;i++) {

for(j=0;j<(10-i);j++) {

if(max>a[i]) {

max=a[i]; k=i; } }

b[i]=max;

for(j=k;j<(9-i);j++) {

a[j]=a[j+1]; } } }

void main(void) {

int i;

cout<<\请输入十个数字:\ for(i=0;i<10;i++) {

cin>>a[i]; }

insertSort(); for(i=0;i<10;i++) {

cout<

cout<<\}

运行结果如图


软件基础实验报告(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2017临床助理医师综合笔试全真模拟题--第一套

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: