Algorithm 如何在二进制搜索实现中找出循环不变量? boolbinsearch(int x){ int i=0,j=N; 而(i

Algorithm 如何在二进制搜索实现中找出循环不变量? boolbinsearch(int x){ int i=0,j=N; 而(i,algorithm,binary-search,induction,loop-invariant,Algorithm,Binary Search,Induction,Loop Invariant,考虑循环中保持状态的变量。在您的情况下,它们是变量i和j。您从以下事实开始:所有元素j,大于x。这是您试图维护的不变量。到目前为止,关于如何证明二进制搜索的正确性,您研究了哪些内容?www上应该有很多内容。 bool binsearch(int x) { int i = 0, j = N; while(i < j) { int m = (i+j)/2; if(arr[m] <= x) { if(arr[m] ==

考虑循环中保持状态的变量。在您的情况下,它们是变量i和j。您从以下事实开始:所有元素x)所有元素>j,大于
x
。这是您试图维护的不变量。

到目前为止,关于如何证明二进制搜索的正确性,您研究了哪些内容?www上应该有很多内容。
bool binsearch(int x) {
    int i = 0, j = N;
    while(i < j) {
        int m = (i+j)/2;
        if(arr[m] <= x) {
            if(arr[m] == x)
                return true;
            i = m+1;
        }
        else {
            j = m;
        }
    }
    return false;
}