苏州科技大学三本:实验八 查找和排序

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 00:38:35
一、实验目的
掌握运用数据结构两种基本运算查找和排序,并能通过其能解决应用问题。
二、实验要求
1.认真阅读和掌握本实验的算法。
2.上机将本算法实现。
3.观察程序的运行结果,并结合程序进行分析。
4. 保存实验结果到服务器。
三、实验内容
1. 屏幕提示用户任意输入10个整数,组成一个待排序序列
2. 使用任意两种排序算法对序列进行排序,输出每趟排序的结果
3. 使用折半查找法查找序列中的值,查找内容由系统提示用户输入,输出查找位置

#include<stdio.h>
#define maxsize 100
typedef struct
{
int data[maxsize];
int last;
}sqlist;
void creat_sqlist(sqlist &r)
{
int i,x;
r.last=0;
printf("Please input some int!\n");
scanf("%d",&x);
while(x!=-32767)
{
r.data[++r.last]=x;
scanf("%d",&x);
}
}

void output_sqlist(sqlist r)
{
int i;
for(i=1;i<=r.last;i++)
printf("%6d",r.data[i]);
printf("\n");
}

void bublsort(sqlist &r)
{
int d=1,exch=1,t,i=1,pos[3];
pos[-1]=1;pos[1]=r.last;
while(exch)
{
exch=0;
while(i!=pos[d])
{
if((r.data[i]-r.data[i+d])*d>0)
{
t=r.data[i];
r.data[i]=r.data[i+d];
r.data[i+d]=t;
exch=1;
}
i=i+d;
}
pos[d]=pos[d]-d;
i=pos[d];
d=d*(-1);
}
}

void main()
{
sqlist r;
creat_sqlist(r);
bublsort(r);
output_sqlist(r);
}
该程序采用冒泡排序