大家好,我是小新,我来为大家解答以上问题。二分查找算法举例说明,二分查找算法很多人还不知道,现在让我们一起来看看吧!
1、前提要求数据排好序,有递归和非递归版本
2、int binSearch(const int *Array,int start,int end,int key)
3、{
4、int left,right;
5、int mid;
6、left=start;
7、right=end;
8、while (left<=right) { /注释中为递归算法,执行效率低,不推荐
9、mid=(left+right)/2;
10、/* if (key<Array[mid]) {
11、return(binSearch(Array,left,mid,key));
12、}
13、else if(key>Array[mid]){
14、return (binSearch(Array,mid+1,right,key));
15、}
16、else
17、return mid;
18、*/
19、if (key<Array[mid]) {
20、right=mid-1;
21、}
22、else if(key>Array[mid]){
23、left=mid+1;
24、}
25、else
26、return mid;
27、}
28、return -1;
29、}
本文到此讲解完毕了,希望对大家有帮助。