写正确函数需要注意的地方:二分查找

来源:互联网 发布:断电后ubuntu崩溃了 编辑:程序博客网 时间:2024/06/09 15:03
//正确的算法template<typename V>int my_binary_search(vector<V> array, V v){int left=0;int right=array.size()-1;int middle;while (left<=right)//为了使得最后的right能够被判断到。{middle=(left+right)/2;if (array[middle]==v){return middle;}else if (array[middle]>v){right=middle-1;}else{left=middle+1;}}return -1;}


1. 循环结束标志为left<=right。为了使得最后的right能够被判断到。

//寡人的错误代码template<typename V>int my_binary_search(vector<V> array, V v){int left=0;int right=array.size()-1;int middle;while (left<=right){middle=(left+right)/2;if (array[middle]==v){return middle;}else if (array[middle]>v){right=middle-1;}else{left=middle+1;}}return -1;}




原创粉丝点击