二分查找、由二分法衍生的三分法以及二分答案
二分查找
在一个有序数组中查找某一元素的算法。
2025/9/13大约 2 分钟
#include <bits/stdc++.h>
#define pb push_back
#define int long long
#define fs first
#define sc second
#define sz(a) (int)a.size()
#define pii pair<int,int>
#define rep(i , a , b) for(int i = (a) ; i <= (b) ; i++)
#define per(i , a , b) for(int i = (a) ; i >= (b) ; i--)
#define all(a) a.begin(),a.end()
using namespace std;
const int N = 2e5 + 5;
const int MOD = 1e9 + 7;
void solve(){
}
signed main() {
cin.tie(0), cout.tie(0), ios::sync_with_stdio(false);
#ifndef ONLINE_JUDGE
freopen("./test.in", "r", stdin);
freopen("./test.out", "w", stdout);
#endif
int _=1;
// cin >> _;
while (_--) solve();
return 0;
}
std::sort使用CPP内置STL库的 sort() 算法
用法:
// a[0] .. a[n - 1] 为需要排序的数列
// 对 a 原地排序,将其按从小到大的顺序排列
std::sort(a, a + n);
// cmp 为自定义的比较函数
std::sort(a, a + n, cmp);
std::sort(a + 1, a + 1 + n); // a[1] .. a[n] 从小到大排序
std::sort(a + 1, a + 1 + n, greater<int>()); // a[1] .. a[n] 从大到小排序