数据结构查找与排序.doc
文本预览下载声明
南昌大学实验报告
学生姓名: 李木子 学 号: 8000113146 专业班级: 软工133
实验类型:□ 验证 □ 综合 □ 设计 □ 创新 实验日期: 实验成绩:
实验项目名称
查找与排序
实验目的
学会二分查找,和冒泡排序
实验基本原理
主要仪器设备及耗材
电脑,VC6.0
五、实验步骤
#include stdio.h
#define MAXSIZE 100
typedef int datatype;
/************************************/
/* 顺序表结构体的定义 */
/************************************/
typedef struct{
datatype a[MAXSIZE] ;
int size;
}sequence_list;
/************************************/
/* 函数声明 */
/************************************/
int binsearch(sequence_list * list , int x) ;
void display(sequence_list slt) ;
void sort(sequence_list *s) ;
/************************************/
/* 二分查找 */
/************************************/
int binsearch(sequence_list * list , int x)
{
int low ;
int high ;
int mid ;
low = 0 ;
high = list-size-1 ;
while ( low = high )
{
mid = (low + high) / 2 ;
if( x list-a[mid] )
high = mid - 1 ;
else if( x list-a[mid] )
low = mid + 1 ;
else
return mid ;
}
return -1 ;
}
/************************************/
/* 顺序表的显示函数 */
/************************************/
void display(sequence_list slt)
{
int i;
if(!slt.size)
{
printf(\n顺序表为空) ;
}
else
{
for(i=0;islt.size;i++)
printf(\n%d\n,slt.a[i]) ;
}
}
/************************************/
/* 顺序表排序 */
/************************************/
void sort(sequence_list *s)
{
int i ;
int j ;
int temp ;
for(i=0;is-size-1;i++)
{
for(j=i+1;js-size;j++)
{
if(s-a[i]=s-a[j])
{
temp=s-a[i];
s-a[i]=s-a[j];
s-a[j]=temp;
}
}
}
}
/************************************/
/* 主函数 */
/************************************/
int main(){
int i ;
int n ;
int location ;
sequence_list list1 ;
list1.size=0 ;
printf(第一个顺序表元素个数:\n);
scanf(%d ,n) ;
printf(第一个顺序表输入:\n);
for(i=0 ; in ;
显示全部