C++的查找分为静态查找与动态查找。
静态查找:只是在查找表中判断是否有这一个元素,取出这个元素的属性。
动态查找:在查找过程中,会对查找表做出修改。 比如插入、删除。

静态查找

静态查找包括:顺序查找、二分查找、分块查找等。

顺序查找O(n)

查找表可以是有序或无序。顺序查找就是逐个比较。

#include <iostream>
#include <vector>
using namespace std;
int main()
{vector<int> vn_container;for(int i = 1;i<=10;i++)vn_container.push_back(i);int target = 6;for(int i = 0;i<vn_container.size();i++)if(vn_container[i] == target){cout<<"Exist"<<endl;return 0;}cout<<"Don't exist"<<endl;
}

二分查找O(logn)

要求查找表为有序,然后将target和查找表的中间值比较。小于中间值的话,去左边查找,大于中间值的话,去右边查找(如果是升序的话)。

#include <iostream>
#include <vector>
using namespace std;
int main()
{vector<int> vn_container;for(int i = 1;i<=10;i++)vn_container.push_back(i);int target = 6;int left = 0,right = 9;while(left < right){int mid = (left + right) >> 1;if(vn_container[mid] >= target) right = mid;else  left = mid + 1;}if(vn_container[left] != target)cout<<"Don't exist"<<endl;elsecout<<"exist"<<endl;
}

C++查找算法(更新中)相关推荐

  1. 数据结构与算法--更新中...

    本质 : 对数据的查找. 插入和删除 目的: 建立时间复杂度.空间复杂度意识,写出高质量的代码,能够设计基础架构,提升编程技能,训练逻辑思维,积攒人生经验. 以此获得工作回报,实现你的价值,完善你的人 ...

  2. c语言程序二分法求解,C语言二分法查找算法(附带源码)

    顺序查找是从第一个数据开始比较,直到找到目标数据.当数据量较大时,顺序查找的效率就会降低. 将数据进行排序以后,我们就可以使用另一种更加有效的查找方法:二分法查找.二分法查找的思想是,对于已经按照从小 ...

  3. leetcode贪心算法题集锦(持续更新中)

    leetcode贪心算法题集锦 leetcode贪心算法题集锦(持续更新中).python 和C++编写. 文章目录 leetcode贪心算法题集锦 一.贪心算法 1.盛最多水的容器 2.买股票的最佳 ...

  4. H.264解码器中CAVLC码表查找算法的分析与优化

    0 引言    近年来,随着信息技术飞速发展和互联网的日益普及,尤其是以视频为信息主要来源的多媒体领域越来越受到人们的关注.H.264是ITU-T的视频编码专家组(VCEG)和ISO/IEC的活动图像 ...

  5. 数据结构与算法-java笔记一 更新中

    数据结构与算法-java笔记一 更新中 数据结构与算法 什么是数据结构.算法 数据结构学了有什么用: 线性结构 数组 特点 应用 链表 存储结构 链表类型 单链表 双向链表 双向循环链表 链表与数组的 ...

  6. 本专栏所有力扣题目的目录链接, 刷算法题目的顺序(由易到难/面试频率)/注意点/技巧, 以及思维导图源文件问题(持续更新中)

    这篇文章为本专栏所有力扣题目提供目录链接, 更加方便读者根据题型或面试频率进行阅读, 此外也会介绍我在刷题过程中总结的刷算法题目的顺序/注意点/技巧, 最后说下文中出现的思维导图源文件的问题 和 打卡 ...

  7. SGISTL源码探究-stl_alog.h中的二分查找算法

    前言 在上一小节中我们分析了stl_algo.h中的部分算法.本小节中我们将继续分析其中关于二分查找类的算法,即lower_bound.upper_bound.binary_search.equal_ ...

  8. 数据结构与算法复习(持续更新中)

    目录 数组 为什么很多编程语言中数组都从0开始编号? 如何实现随机访问 数组和链表的区别 链表 栈 函数调用栈来保存临时变量,为什么函数调用要用"栈"来保存临时变量呢?用其他数据结 ...

  9. leetcode中关于使用二分查找算法思想deal的题型

    学习了二分查找的算法思想之后,再leetcode上写了一道常见的简单面试题,现在用博客记录一下我学习刷题的笔记! leetcode 题号69:Sqrt(x)(经典的面试题) 给你一个非负整数 x ,计 ...

  10. 双指针算法(更新中....)

    双指针算法 双指针算法顾名思义就是采用左右指针,对数组.字符串进行查找或排序.常见的采用双指针算法方式有以下几个 从中间向两边进行扩散,两边向中间进行集合. 快速排序 基本思想 找到数组中最中间的数值 ...

最新文章

  1. 视频处理单元Video Processing Unit
  2. AndroidStudio权威教程 AS添加第三方库的6种方式(Jar module so等)
  3. vue 实战问题-watch 数组或者对象
  4. 如何把一个二维数组的地址赋给一个二维指针?
  5. 2B.处女座与cf(C++)
  6. oracle 安装 挂载磁盘组_ora-15077,ASM磁盘组不能挂载
  7. python简易版成绩管理系统_Python 实现简易版成绩管理系统
  8. 记录spark-yarn模式下提交自己写的java程序
  9. log4j mysql_log4j写入mysql数据库 | 学步园
  10. 03-21 webview 性能分析
  11. 《power BI 视频7》六合一图表案例
  12. 【杭电5053】the Sum of Cube
  13. linux iio子系统
  14. 边境的悍匪—机器学习实战:第八章 降维
  15. 我是如何一步一步爬上 「64K限制」 的坑
  16. 微服务-API网关-熔断降级
  17. php和android和mysql_如何使用JSON连接Android和PHP Mysql数据库
  18. postman批量发送请求小记
  19. 【Python网络编程和并发-多线程共享数据混乱引出同步锁】
  20. 流水作业调度(动态规划)

热门文章

  1. 2022-2028年中国钽酸锂单晶行业市场调查分析及投资发展潜力报告
  2. Docker 入门系列(3)- Docker 容器(创建、启动、终止、进入、删除、导入、导出容器、容器和镜像转化)
  3. Docker配置远程连接端口
  4. Eclipse+Maven创建web项目
  5. 论文阅读工具ReadPaper
  6. Android Animation (安卓动画)概念简介
  7. LeetCode简单题之数组中第 K 个独一无二的字符串
  8. Pass算子python 函数
  9. 编写可调模板并使用自动调谐器
  10. MinkowskiPooling池化(上)