当数据量很大适宜采用该方法。采用二分法查找时,数据需是排好序的,默认是按 升序 排好的。时间复杂度:O(logn)

集合中的set和map中使用二分法进行查找的。

int BiSearch(char *str, int n, char find) //返回值是:下标
{     int low = 0, mid = 0, upper = n-1;if ((NULL == str) || (0 >= n)){return -1;}while (low <= upper) {         mid = (low + upper) / 2;    if (str[mid] < find){low = mid + 1;}          else if (str[mid] > find){upper = mid - 1; }else{return mid;}     }return -1;
} 

二分法查找(C/C++)相关推荐

  1. Java 二分法查找

    二分法查找的步骤 1 查找前元素先排序 2 确定中间区域的位置mid=(low+high)/2 3 比较 如果等于要查找的值则直接返回,如果大于查找的值,那么则去小的部分查找每次则会减1 如果要查找的 ...

  2. 【二级java】 二分法查找

    例题1 :对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为______. 解析: 如果线性表中的第一个元素就是被查找元素,则只需做一次比较就查找成功 查找次数为1 如果线形表中不存在该数 ...

  3. java二分法找数数_JavaSE语言基础之数组二分法查找

    一.概念: 算法:当数据量很大适宜采用该方法.采用二分法查找时,数据需是排好序的. 基本思想:假设数据是按升序排序的,对于给定值key,从序列的中间位置k开始比较, 如果当前位置arr[k]值等于ke ...

  4. iOS 排序算法总结、二分法查找

    iOS 排序算法总结.二分法查找 还有一个:二分插入排序  平均时间O(n2)   稳定 1.插入排序 在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个 ...

  5. php常见的几种排序以及二分法查找

    <?php 1.插入排序 思想: 每次将一个待排序的数据元素插入到前面已经排好序的数列中,使数列依然有序,知道待排序数据元素全部插入完为止. 示例: [初始关键字] [49] 38 65 97 ...

  6. python实现二分法查找_python3 二分法查找

    ''' 二分法查找 有序列表 掐头去尾取中间 查找列表中xx在不在列表中,在,则返回索引值 ''' # lst = [1, 4, 6, 8, 9, 21, 23, 26, 35, 48, 49, 54 ...

  7. c语言二分法查找次数,二分法查找

    二分法查找 算法:二分法查找适用于数据量较大,但是数据需要先排好序 (1)确定该区间的中间位置k (2)将查找的值T与array[k]进行比较.若相等,查找成功返回此位置:否则确定新的查找区域,继续二 ...

  8. PHP二分法查找,MYSQL索引即为用了此查找

    算法:当数据量很大适宜采用该方法.采用二分法查找时,数据需是排好序的.主要思想是:(设查找的数组区间为array[low, high]) (1)确定该区间的中间位置K (2)将查找的值T与array[ ...

  9. Java的知识点18——数组存储表格数据、冒泡排序的基础算法、冒泡排序的优化算法、二分法查找

    数组存储表格数据 package cn.dym08; import java.util.Arrays; public class Test09 {public static void main(Str ...

  10. php折半查找算法,php二分法查找(也叫折半查找)算法 (数组必须是从小到大的)

    //php二分法查找(也叫折半查找)算法/ 数组必须是从小到大的 $abs=array(1,12,13,114,115,116,117,118); //z查找数组的最大下标 $hight = coun ...

最新文章

  1. php exif信息,php通过exif_read_data函数获取图片的exif信息
  2. Asp.net生成工作流、审批流的解决方案(asp.net workflow svg)
  3. Linux网络编程服务器模型选择之并发服务器(下)
  4. NumPy快速入门--基础知识
  5. 数据结构与算法面试题80道(32)
  6. 字节跳动宣布取消大小周;淘宝、支付宝等阿里系App取消开屏广告;Python 3.10 beta 4 发布|极客头条...
  7. 李洪强和你一起学习前端之(9)规避脱标,CSS可见性,滑动门案例
  8. sublime 添加 ConvertToUTF-8
  9. 利用JS模拟排队系统
  10. linux命令行连接蓝牙音箱,有些Linux发行版用蓝牙连接天猫精灵和小爱音箱没声音...
  11. 记用Fiddler抓包爬取pc端微信公众号文章
  12. Windows安装RabbitMQ的时候出现Plugin configuration unchanged
  13. 黑群晖vmm专业版_群晖的ABB应用不错,但必须吐槽群晖 VMM功能,让你看看就是不让你好好用!!!...
  14. 塔望3W消费战略全案丨阳澄湖牌大闸蟹:承诺就是价值,打响官方第一枪
  15. Delphi-UpperCase 函数
  16. BioPython读取FASTA文件保留header中空格的方法
  17. 信息论复习—线性分组码的基本性质
  18. K8S 安装 Dashboard
  19. 线电压和相电压,线电流和相电流的关系
  20. 程序员和产品经理的工作强度对比

热门文章

  1. Android4.0蓝牙使能的详细解析
  2. Lync Server外部访问系列PART5:模拟公网DNS
  3. vagrant系列教程(四):vagrant搭建redis与redis的监控程序redis-stat(转)
  4. java的自动类型转换和强制类型转换
  5. Ubuntu Sudo 无法解析的主机
  6. Web安全渗透测试之信息搜集篇(上)
  7. IT职业教育行业报告
  8. Flask项目--注册
  9. 力软 java主从表保存_JAVA常用知识总结(十二)——数据库(二)
  10. flymcu无法打开串口_西门子1200与其他PLC/组态软件无线串口通讯(自由口)