ACM算法入门——二分查找
来源:互联网 发布:淘宝网大毛衣外套 编辑:程序博客网 时间:2024/06/06 05:56
二分
概述:二分在查找时用得比较多,复杂度为O(logn),使用二分的前提要求数据按非递减顺序排列(如:1 2 2 2 4 5 6 7),如果数据不为非递减顺序,需要对数据进行排序,排序复杂度为O(n*logn)。
代码演示:
#include <cstdio>#include <iostream>#include <cstring> //memset函数头文件#include <algorithm> //排序函数sort所在的头文件using namespace std;const int MaxN = 1e5 + 5;#define debug(x) cout << #x << "=" << x << endl;int main(){ int n, m, t; int a[MaxN]; cin >> t; while(t--){ memset(a, 0, sizeof(a)); //清空数组 cin >> n >> m; for (int i = 1; i <= n; i++) cin >> a[i]; // 输入 sort(a + 1, a + 1 + n); //非递减排序 int l = 1, r = n; int ans = 0; while(l <= r) { //二分 int mid = (l+r) / 2; if(a[mid] >= m){ r = mid - 1; if(a[mid] == m) ans++; } else l = mid + 1; } cout << ans << endl; } return 0;}/*---------测试数据:210 250 2 3 5 46 9 100 2 5 895 51 2 0 4 3-----------*/
测试结果:
读者也可以自行输入几组数据测试
阅读全文
2 0
- ACM算法入门——二分查找
- 算法入门1:二分查找
- 查找算法之——二分查找
- C查找算法——二分查找
- 算法——查找之二分查找
- 常见查找算法之—二分查找
- 算法——二分查找算法
- 算法之—二分查找算法
- 【计蒜客】基础算法入门之二分查找
- 二分查找算法小白入门
- python算法之——二分查找
- 算法之旅——二分查找
- noj算法题——二分查找
- 经典算法——二分查找法
- 剑指Offer——二分查找算法
- 经典算法学习——二分查找
- java算法——二分查找
- ACM-二分查找
- 统一的分布式数据库和文件系统mongodb,及其用于解决aliyun上做站的存储成本方案
- 对hbase进行增删改查的操作实例
- JDK不同操作系统的FileSystem(Windows&Unix-like)
- java的抽象与接口
- dfs深度优先收搜
- ACM算法入门——二分查找
- C++小练习—找零钱问题
- 免内置mysql和客户端媒体的kbengine demo,kbengine通用版
- HDU-4614 Vases and Flowers (线段树+二分)
- Arrays.asList()是个坑
- Java实现get或post请求
- LeetCode 682. Baseball Game (Easy)
- C#WinForm二维码编码解码器
- 2-sum问题