diff --git a/二分排序 b/二分排序 deleted file mode 100644 index 6ef9fde..0000000 --- a/二分排序 +++ /dev/null @@ -1,44 +0,0 @@ -//二分法 -// 整数二分 -bool check(int x) {/* ... */} // 检查x是否满足某种性质 - -// 区间[l, r]被划分成[l, mid]和[mid + 1, r]时使用: -int bsearch_1(int l, int r) -{ - while (l < r) - { - int mid = l + r >> 1; - if (check(mid)) r = mid; // check()判断mid是否满足性质 - else l = mid + 1; - } - return l; -} -// 区间[l, r]被划分成[l, mid - 1]和[mid, r]时使用: -int bsearch_2(int l, int r) -{ - while (l < r) - { - int mid = l + r + 1 >> 1; - if (check(mid)) l = mid; - else r = mid - 1; - } - return l; -} - - -// 浮点数二分 -bool check(double x) {/* ... */} // 检查x是否满足某种性质 - -double bsearch_3(double l, double r) -{ - const double eps = 1e-6; // eps 表示精度,取决于题目对精度的要求 - while (r - l > eps) - { - double mid = (l + r) / 2; - if (check(mid)) r = mid; - else l = mid; - } - return l; -} - -//复杂度说明: 时间复杂度为o(logn). \ No newline at end of file