无限循环递归搜索

时间:2016-09-19 02:49:33

标签: c++

template <typename T>
SearchResultType<T> recursive_binary_search(const std::vector<T> &list,const T &value){
    long int low = 0;
    long int high = list.size() - 1;
    long int mid = low + (high - low) / 2;

    if (low != high) {
        if (value < list[mid]) {
            std::vector<T> sub(&list[low], &list[mid - 1]);
            return recursive_binary_search(sub, value);
        }
        else if (value > list[mid]) {
            std::vector<T> sub(&list[mid + 1], &list[high]);
            return recursive_binary_search(sub, value);
        }
        else if (value == list[mid]) {
            return SearchResultType<T>(true, value, mid);
        }
    }
    else {
        return SearchResultType<T>(false, list[mid], mid);
    }
}

当我使用此代码搜索向量中的字符串时,它会陷入无限循环。任何想法为什么会卡住?

0 个答案:

没有答案