2013年2月24日

寻找脚码—-2013年2月24日

题目来自:《C语言精选名题百则技巧篇》

问题描述:已知一个整数数组x[],其中的元素彼此都不相同,而且也已经从小到大排列好。请用比较大小,相等的方式编写一个程序,找出给定的数组中是否有一个元素满足x[i]=i的关系。举例而言,香港空间,如果x[]={-2,-1,3,7,8},x[3]=3,因此3就是答案。

思路:利用x[]中的元素彼此都不相同而且从小到大排列,美国服务器,可以用二分查找法。代码很简单。

1 #include <stdio.h> 2 #define MAX 1000BinarySearch(int a[],int high,int low); main() 8 {low=0;11int high=4;12int result=BinarySearch(x,high,low);,x[result]);14 }BinarySearch(int a[],int high,int low)17 {18while(low<=high)19 {20int mid=low+(high-low)/2;21if(a[mid]==mid+1)22return mid;(a[mid]>mid+1)24high=mid-1;low=mid+1;27 }28return -1;29 }

如果你觉得我的文章对你有帮助,请推荐一下,服务器空间,非常感谢!

posted on

未经一番寒彻骨,焉得梅花扑鼻香

2013年2月24日

相关文章:

你感兴趣的文章:

标签云: