欢迎来到天天文库
浏览记录
ID:35331097
大小:117.31 KB
页数:7页
时间:2019-03-23
《查找和排序技术》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、计算机软件技术基础结课论文查找和排序技术专业:电气工程及自动化班级:学号:姓名:、顺序查找程序如下:#include"stdio.h"#includeuconio.h"#includeustdlib.hn#includentime.hnintmain(void){inta[10],x,t,y,z;srand((unsigned)time(NULL));for(t=0;t<=9;t++){a[t]=rand();printf(uBefore:u);for(t=0;t<=9;t++)printf("%6d",a[t]);pnntf("
2、ntt**************************•printf("Pleaseinputx=?「);scanf(”%d",&x);for(t=0;t<=9;t++)if(a[t]==x)break;if(t==10)printf(nnotfound!");elseprintf(ua[%d]=%dH,t,a[t]);getch();return0;程序运行结果:"E:cdDebug1.exe"二、二分查找程序如下:#include"stdio.hn#defineN10intlocate(inta[N
3、],intx){inth,r,m;h=0;r=N-l;m=(h+r)/2;while(h<=i-&&x!=a[m])if(xr)return-1;/*查找失败,返回一1*/returnm;/*查找成功,返冋有效下标m*/}voidupinsert(inta[],inti)/*插入排序(升序)*/{intx,j;x=a[i];j=i-l;while(j>=0&&afj]>x){a[j+l]=a[j];j—;}a[j+l]=x;}voi
4、dmain(){inta[N],x,k,n;printf("input%dintegers:H,N);for(k=0;k5、28371956446122inputx=5619222837445661738595fistposition=5Pressanykeytocontinue排序法一、冒泡排序法程序如下:#includeintmain(){intij,t,a[10];printf(uPleaseinput1()integers:M);for(i=0;i<10;i++)scanf(H%du,&a[i]);for(i=0;i<9;i++)/*冒泡法排序*/for(j=0;j<10-i-l;j++)if(afj]>arj+l]){t6、=a[j];/*交换a[i]和a7、j]*/aU]=aU+l];a[j+lJ=t;}printf("Thesequenceaftersortis:n);for(i=0;i<10;i++)printf(M%-5du,a[i]);printf(””);system(npause");return0;}程序运行结果:R*EAcdDebug1・exe"Pleaseinput10integers:816853792544185376Thesequenceaftersortis:581618374453768592请按任意键继续・・8、・二、快速排序法程序如下:#include"stdio.h"voidquickSort(inta[],intleftjntright){inti,j,temp;i=left;j=right;temp=a[left];if(left>right)return;while(i!=j)/*找到最终位置*/{while(a[j]>=temp&&j>i)ZifO>i)a[i++]=a[j];while(afi]<=temp&&j>i)i++;if(j>i)a[j-]=a[i];}a[i]=temp;quickSort(a,left,i-1);9、/*递归左边*/quickSort(a,i+1,right);/*递归右边*/}voidmain(){inta⑺二{8,2,6,12,1,9,5};inti;quickSort(a,0,6);/*排好序的结果*/for(i=0;i<7
5、28371956446122inputx=5619222837445661738595fistposition=5Pressanykeytocontinue排序法一、冒泡排序法程序如下:#includeintmain(){intij,t,a[10];printf(uPleaseinput1()integers:M);for(i=0;i<10;i++)scanf(H%du,&a[i]);for(i=0;i<9;i++)/*冒泡法排序*/for(j=0;j<10-i-l;j++)if(afj]>arj+l]){t
6、=a[j];/*交换a[i]和a
7、j]*/aU]=aU+l];a[j+lJ=t;}printf("Thesequenceaftersortis:n);for(i=0;i<10;i++)printf(M%-5du,a[i]);printf(””);system(npause");return0;}程序运行结果:R*EAcdDebug1・exe"Pleaseinput10integers:816853792544185376Thesequenceaftersortis:581618374453768592请按任意键继续・・
8、・二、快速排序法程序如下:#include"stdio.h"voidquickSort(inta[],intleftjntright){inti,j,temp;i=left;j=right;temp=a[left];if(left>right)return;while(i!=j)/*找到最终位置*/{while(a[j]>=temp&&j>i)ZifO>i)a[i++]=a[j];while(afi]<=temp&&j>i)i++;if(j>i)a[j-]=a[i];}a[i]=temp;quickSort(a,left,i-1);
9、/*递归左边*/quickSort(a,i+1,right);/*递归右边*/}voidmain(){inta⑺二{8,2,6,12,1,9,5};inti;quickSort(a,0,6);/*排好序的结果*/for(i=0;i<7
此文档下载收益归作者所有