乐于分享
好东西不私藏

信奥必学:二分查找详解+代码模板

信奥必学:二分查找详解+代码模板

本期和大家聊聊算法与数据结构,这是竞赛中非常重要的知识点!

核心概念

理解算法的核心思想是掌握它的第一步。好的算法往往能用简洁的思路解决复杂的问题。

学习算法的顺序建议:排序→二分→贪心→搜索→动态规划→图论→高级数据结构

代码模板

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

// 二分查找模板
int binarySearch(vector<int>& arr, int target) {
    int left = 0, right = arr.size() - 1;
    while (left <= right) {
        int mid = left + (right - left) / 2;
        if (arr[mid] == target) return mid;
        else if (arr[mid] < target) left = mid + 1;
        else right = mid - 1;
    }
    return -1;
}

int main() {
    vector<int> arr = {1, 3, 5, 7, 9, 11};
    cout << binarySearch(arr, 7) << endl;
    return 0;
}

竞赛中的常见考法

在CSP竞赛中,算法通常不会直接考查裸模板,而是会结合具体场景进行变形。关键是要识别出可以用哪种算法思想来解题。

建议多刷题培养「题感」,推荐平台:洛谷、Codeforces、AtCoder。

推荐练习

洛谷相关题目推荐:建议从入门难度开始,逐步提升。每天1-2题,坚持就是胜利!

📌 收藏这篇,随时回顾!关注我们获取更多信奥学习资料~