• 二分查找算法


    二分查找

    进行二分查找的前提是序列已经有序,二分查找的时间复杂度为O(lgn)。每次和中间的数字进行比较,如果比较的数比中间的大,就在右边查找,小就在左边查找。

    具体实现

    #include <iostream>
    #include <vector>
    
    using namespace std;
    
    class Solution {
    public:
        int binary_search(vector<int>& vec, int start, int end, int value) {
            if (start > end) {
                return -1;
            }
            int middle = (start + end) / 2;
            if (value == vec[middle]) {
                return middle;
            } else if (value < vec[middle]) {
                return binary_search(vec, start, middle - 1, value);
            } else if (value > vec[middle]) {
                return binary_search(vec, middle + 1, end, value);
            }
        }
    
    };
    int main() {
        int arr[] = {1, 2, 2, 3, 4, 5, 6, 7, 7, 100};
        vector<int> vec(arr, arr+10);
        Solution* solution = new Solution();
        cout << solution->binary_search(vec, 0, 9, 100) << endl;
        return 0;
    }
    
  • 相关阅读:
    Xargs
    录制终端会话-script--查找find
    命令之乐-cat
    Linux_shell编程--比较与测试
    线程进程
    计算机网络基础
    python基础-列表相关
    初学Python
    numpy 基本的数组统计方法
    python 操作mysql 入门
  • 原文地址:https://www.cnblogs.com/zhonghuasong/p/6541679.html
Copyright © 2020-2023  润新知