首页 > 解决方案 > 字符串数组中的二分查找

问题描述

因此,我一直在尝试在字符串数组中实现以下问题 https://www.hackerrank.com/challenges/sparse-arrays/problem?isFullScreen=true的二进制搜索, 因为我正在对“字符串”进行排序向量并使用二分搜索来降低时间复杂度,但我在使用 stl 函数 strcmp 时遇到错误。

感谢您对解决问题的任何帮助。

bool binarysearch(string s,vector<string > strings){
    int left = 0;
    int right = strings.size()-1;
    while(left <= right){
        int mid = (left+right)/2;
        int x = strcmp(s,strings[mid]);
        if(x == 0){
            return true;
        }else if(x < 0){
            left = mid+1;
        }else if(x > 0){
            right = mid-1;
        }
    }
    return false;
}

标签: c++arrayssearch

解决方案


推荐阅读