《电子科技大学软件技术基础实验报告(共7页).doc》由会员分享,可在线阅读,更多相关《电子科技大学软件技术基础实验报告(共7页).doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上电子科技大学 通信与信息工程 学院标 准 实 验 报 告(实验)课程名称 软件技术基础实验 电子科技大学教务处制表电 子 科 技 大 学实 验 报 告一、实验室名称:校公共机房 二、实验项目名称:查找与排序三、实验学时:4学时四、实验原理:使用VS2010等C语言集成开发环境(IDE),在微型计算机上对程序进行编辑、编译、连接与运行。通过上机练习掌握顺序查找、二分查找函数、简单选择法、直接插入法、冒泡法排序、快速排序等方法、过程和实际应用。五、实验目的:1. 熟练掌握顺序查找、二分查找函数、简单选择法、直接插入法、冒泡法排序、快速排序等算法方法并实现。2. 掌握课程平
2、台使用方法。六、实验内容:ex5_1:查找 设有序序列的数据元素为:(3,10,13,17,40,43,50,70)1)编写顺序查找函数2)编写二分查找函数3)在主程序中输入关键字(43和5),分别调用两种查找函数,输出结果。/第一题#include #define maxnum 20typedef struct int datamaxnum; int length;list_type;void create(list_type *l) l-length=8; l-data0=3; l-data1=10; l-data2=13; l-data3=17; l-data4=40; l-data5=
3、43; l-data6=50; l-data7=70;void shunxucz(list_type *l,int a1,int a2) int i,flag=0; printf(-n); printf(顺序查找法:n); for(i=0;ilength;i+) if(a1=l-datai) printf(%d是第%d个元素n,a1,(i+1);flag=flag+1; if(flag=0) printf(表中没有大小为%d的元素n,a1); flag=0; for(i=0;ilength;i+) if(a2=l-datai) printf(%d是第%d个元素n,a2,(i+1);flag=f
4、lag+1; if(flag=0) printf(表中没有大小为%d的元素n,a2);void erfencz(list_type *l,int a1,int a2) printf(-n); printf(二分查找法:n); int low,h,m,flag=0,i; low=0; h=l-length-1; for(i=0;ilength;i+) m=(low+h)/2; /如果有小数就向小的数字取值9/2=4 if(l-datam=a1) printf(%d是第%d个元素n,a1,(m+1);flag=1;break; else if(l-datamdatam22) h=m-1; if(f
5、lag!=1) printf(表中没有大小为%d的元素n,a1); flag=0; low=0; h=l-length-1; for(i=0;ilength;i+) m=(low+h)/2; /如果有小数就向小的数字取值9/2=4 if(l-datam=a2) printf(%d是第%d个元素n,a2,(m+1);flag=1;break; else if(l-datamdatam22) h=m-1; if(flag!=1) printf(表中没有大小为%d的元素n,a2);int main() int flag1=43,flag2=5; list_type list,list1,list2;
6、 create(&list);create(&list1);create(&list2); shunxucz(&list1,flag1,flag2); erfencz(&list1,flag1,flag2); printf(-n);ex5_2:排序1)编写简单选择法函数2)编写直接插入法函数3)编写冒泡法排序函数4)编写快速排序函数5)在主程序中输入一组数据元素(513,87,512,61,908,170,897,275,653,462),分别调用4种排序函数,输出每趟排序结果。/第二题#include #define maxnum 20typedef struct int datamaxnu
7、m; int length;list_type;void create(list_type *l) l-length=10; l-data0=513; l-data1=87; l-data2=512; l-data3=61; l-data4=908; l-data5=170; l-data6=897; l-data7=275; l-data8=653; l-data9=462;void charupx(list_type *l) printf(-n); printf(插入排序法:n); printf(分步过程:n); int i,j,k; int temp; for ( i=1; ilengt
8、h; i+) temp=l-datai; j=i-1; while (j=0)& (tempdataj) l-dataj+1=l-dataj; j=j-1; l-dataj+1=temp; if(i=9) printf(最终结果:n); for(k=0;klength;k+) printf( %d ,l-datak); printf(n); void maopaopx(list_type *l) int temp; int i,j,k; printf(-n); printf(冒泡排序法:n); printf(分步过程:n); for(i=0;ilength;i+) for(j=i+1;jlen
9、gth;j+) if(l-datail-dataj) temp=l-datai;l-datai=l-dataj;l-dataj=temp; if(i=9) printf(最终结果:n); for(k=0;klength;k+) printf( %d ,l-datak); printf(n); void xuanzepx(list_type *l) int temp,i,j,k; printf(-n); printf(选择排序法:n); printf(分步过程:n); for(i=0;ilength;i+) for(j=i;jlength;j+) if(l-datajdatai) temp=l-
10、dataj; l-dataj=l-datai; l-datai=temp; if(i=9) printf(最终结果:n); for(k=0;klength;k+) printf( %d ,l-datak); printf(n); void quick_sort( int *a, int low, int high)int i = low, j = high;int temp = a low;if( low = high) return;while( i != j)while( i = temp)j-;a i = a j;while( i j & a i = temp)i+;a j = a i;
11、a i = temp;quick_sort( a, low, i - 1); quick_sort( a, i + 1, high);for(i=0; ihigh+1; i+) printf( %d , ai); printf (n);int main()int i; list_type list,list1,list2,list3; create(&list);create(&list1);create(&list2);create(&list3); xuanzepx(&list2); charupx(&list); maopaopx(&list1);printf(-n); printf(快速排序法:n); printf(分步过程:n); quick_sort(list3.data,0,list3.length-1); printf(最终结果:n); for(i=0; ilist3.length; i+) printf( %d , list3.datai); printf (n); printf(-n);专心-专注-专业
限制150内