#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{int a[20],i,j,x;int key;srand((unsigned)time(NULL)); for(i=0; i<20; i++)//产生三位数[m,n],[100,999]{ //m+rand()%(n-m+1)a[i]=rand()%(999-100+1)+100;}for(i=1; i<20; i++)//插入排序进行升序{key=a[i];j=i-1;while(a[j]>key&&j>=0){a[j+1]=a[j];j--;}a[j+1]=key;}for(i=0; i<20; i++){printf("%d ",a[i]);if((i+1)%5==0)printf("n");}printf("输入一个数:");scanf("%d",&x);int left=0; //二分查找法int right=19;int mid=0;while(left<=right){ mid=(left+right)/2;if(a[mid]>x) right=mid-1;else if(a[mid]<x) left=mid+1;else if(a[mid]==x){printf("%d",mid);break;}}if(left>right) printf("-1");return 0;
}
本文发布于:2024-02-01 13:07:20,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170676404036808.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |