西南科技大学OJ题 折半查找的实现1010
生活随笔
收集整理的這篇文章主要介紹了
西南科技大学OJ题 折半查找的实现1010
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
折半查找的實現
?1000(ms)
?10000(kb)
?2857?/?11133
編寫程序實現折半查找算法。
輸入
第一行是查找表的長度n 第二行是查找表中的數據元素 ; 第三行是要查找的數據元素的關鍵字.輸出
查找成功返回位序,不成功返回-1 ,第二行為比較的次數。樣例輸入
11 5 13 19 21 37 56 64 75 80 88 92 100樣例輸出
-1 4 #include<stdio.h> int main() {int n;int a[100];int data;int min,mid,max;int t=0;//設置標記 int k=0;//統計比較次數 scanf("%d",&n);for(int i=0;i<n;i++) scanf("%d",&a[i]);scanf("%d",&data);min=0;max=n-1;while(min<=max){k++;mid=(min+max)/2;if(a[mid]==data){printf("%d\n%d",mid,k);t=1;break;}else if(a[mid]<data){min=mid+1;}else if(a[mid]>data){max=mid-1;}}if(t==0)printf("-1\n%d",k);}?
總結
以上是生活随笔為你收集整理的西南科技大学OJ题 折半查找的实现1010的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring注解配置工作原理源码解析
- 下一篇: 如何根据原理图画封装_常用原理图封装