输入一组数据,先用冒泡法将数据从小到大排序,再用二分法查找所需要的那个数据

来源:互联网 发布:淘宝买水果加群才发货 编辑:程序博客网 时间:2024/04/27 22:10

//输入一组数据,先用冒泡法将数据从小到大排序,再用二分法查找所需要的那个数据#include <Stdio.h>int main (void){int a[10],k,i,j,temp; //冒泡法所需要的变量;int low,high,mid,found,n;//二分法所需要的变量;//使用冒泡法printf("请输入10个变量:\n");for(k=0;k<10;k++){scanf("%d",&a[k]);}for(i=0;i<9;i++){for(j=0;j<9-i;j++){if(a[j]>a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}}printf("您输入的数按照从小到大排序为:");for(k=0;k<10;k++)printf("%d ",a[k]);//再使用二分法low=0;high=9;found=0;printf("请输入您需要查找的数:");while(scanf("%d",&n)!=1){printf("输入错误\n""请重新输入\n");getchar();}while(low<=high){mid=(low+high)/2;if(n==a[mid]){found=1;break;}else if(n>a[mid]){low=mid+1;}else {high=mid-1;}}if(found==1){printf("数据%d存在,按照大小排序第%d\n",n,mid+1);}else{printf("没有这个数据\n");}return 0;}


0 0