习题2-3改写二分搜索算法

Posted g0rez

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了习题2-3改写二分搜索算法相关的知识,希望对你有一定的参考价值。

设a[0:n-1]是已排好序的数组,请改写二分搜索算法,使得当x不在数组中时,返回小于x的最大元素位置i和大于x的最小元素位置j。当搜索元素在数组中时,i和j相同,均为x在数组中的位置。

template <class T>
int binarySearch(T a[],const T&x,int left,int right,int &i,int &j){
    int middle;
    while(left<=right){
        middle=(left+right)/2;
        if(x==a[middle]){i=j=middle;return 1;}
        if(x>a[middle]) left=middle+1;
        else right=middle-1;
        }
    i=right;
    j=left;
    return 0;
}

以上是关于习题2-3改写二分搜索算法的主要内容,如果未能解决你的问题,请参考以下文章

『嗨威说』算法设计与分析 - 算法第二章上机实践报告(二分查找 / 改写二分搜索算法 / 两个有序序列的中位数)

算法第二章上机实验报告

算法第二章上机实践报告

二分查找真的那么简单吗?——算法第二章上机实践报告

算法第二章上机实验报告

上机实践报告