二分查找法在数据繁多的数据中查找是一种快速的方法,每次查找最多需要的次数

为2的n次方小于总个数。

当然是有前提的,就是需要把数据先排好序,这里指的都是数值型的数据。

基本思想就是把需要找的值与排序好数组的中间值比较,这里的中间值不是指大小,而是指顺序,

如果比中间值大,则就把前面的部分去掉,接下来只与后面剩余的部分比较,

如果比中间值小,则就把后面的部分去掉,接下来只与前面剩余的部分比较。

如何反复比较,这样就能快速找到所需要的值。这也是最多需要寻找次数的依据。

所以这也涉及到递归的使用。

下面是非常简单的例子,还有很多的bug,主要是表达一个思路,例子主要是用来找出指定值的索引。

            int[] a = { 1, 6, 3, 55, 77, 46, 67, 7, 98, 87, 88 };Array.Sort<int>(a);for (int i = 0; i < a.Length; i++){textBox1.AppendText(a[i].ToString()+" ");}MessageBox.Show(getIndex(a, 0, a.Length, 46).ToString());private int getIndex(int[] a,int start,int end,int num){if (a[(start + end) / 2] < num){return  getIndex(a, start, (start + end) / 2, num);}else if (a[(start + end) / 2] < num){return    getIndex(a, (start + end) / 2, end, num);}else{return (start+end)/2;}}

  

转载于:https://www.cnblogs.com/xiaoai123/p/7057559.html

C#二分查找法 破洞百出版本相关推荐

  1. (java)leetcode852 山脉数组的封顶索引(二分查找法找出数组中最大值的下标)(Peak Index in a Mountain Array)

    题目描述: 我们把符合下列属性的数组 A 称作山脉: A.length >= 3 存在 0 < i < A.length - 1 使得A[0] < A[1] < ... ...

  2. javascript数据结构与算法---检索算法(二分查找法、计算重复次数)

    javascript数据结构与算法---检索算法(二分查找法.计算重复次数) /*只需要查找元素是否存在数组,可以先将数组排序,再使用二分查找法*/ function qSort(arr){if (a ...

  3. java for循环和数组--冒泡排序、二分查找法

    //100以内与7相关的数 for(int a=1;a<=100;a++){     if(a%7==0||a%10==7||a/10==7){      System.out.print(a+ ...

  4. 学习练习 java 二分查找法

    1 package com.hanqi; 2 3 import java.util.*; 4 5 public class Test5 { 6 7 public static void main(St ...

  5. java算法2_二分查找法

    比如现在有个记录名单的字典,里面的名字是按A-Z的顺序排好的,现在我想找Lily这个人.我可以从第一页开始一页一页的翻,但显然这样效率太低了.我可以怎么做呢?首先我直接翻到字典的中间位置,假如发现这里 ...

  6. 7-60 二分查找法之过程 (10 分)

    7-60 二分查找法之过程 (10 分) 本题要求使用二分查找法,在给定的n个升序排列的整数中查找x,并输出查找过程中每一步的中间结果.如果数组a中的元素与x的值相同,输出相应的下标(下标从0开始): ...

  7. 算法(一):二分查找法

    算法基础: 一.大O表示法: 指示算法的速度有多快,用于指出随数量的增大,算法的所需步骤增加的速度,常见的大O运行时间(时间复杂度): O(1)表示常数阶时间复杂度 O(log n),也叫对数时间复杂 ...

  8. c语言 二分查找法 及二分查找法的时间复杂度。

    二分查找法是用来查找数组中指定的那个元素.使用二分查找的前提是数组是有序的.(这里我们假设是升序) 在现实生活中,我们要猜一个区间内的数字,比如1~10之间,我们通常会猜它的中间数5,再根据要猜的数和 ...

  9. 二分查找法及二分搜索树及其C++实现

    二分查找法及二分搜索树及其C++实现 二分查找法 二分查找简介 二分查找的实现 二分搜索树 二分搜索树简介 二分搜索树的实现 二分查找法 二分查找简介 二分查找是一种在每次比较之后将查找空间一分为二的 ...

最新文章

  1. 珍惜当下、Relish the Moment
  2. Flutter快速入门 五步搞定Flutter环境配置
  3. haxm intel庐_Android Studio中Intel HAXM的那些坑
  4. MySQL 实用语句集合
  5. PAT 之 A+B和C
  6. 双引擎驱动Quick BI十亿数据0.3秒分析,首屏展示时间缩短30%
  7. python读取html中body_python批量获取html内body内容的实例
  8. es6 super 关键字
  9. 从gbdt到xgboost
  10. qt设置文本背景透明_QT QWidget设置窗体透明度方法汇总
  11. 《Ansible权威指南 》一1.6 Ansible应用场景
  12. python爬虫,以某小说网站为例
  13. amaze ui教程
  14. 易语言 火眼 哈勃 防分析源码
  15. Springboot+mybatis
  16. web 前端签名插件_手写签名插件—jSignature
  17. 台式机和台式计算机的区别,台式机和一体机区别是什么
  18. nbs***bsp;是牛客的bug吗
  19. Windows 10最新原版镜像(Version 21H1)
  20. 三分钟了解http和https

热门文章

  1. Redis 客户端:Jredis 和 spring-data-redis 整合
  2. 最小生成树和最短路径区别(详解表格)
  3. matlab画柱坐标系,[合集]有人知道怎样用matlab画柱坐标3维图 - 程序设计(Programming)版 - 北大未名BBS...
  4. 二进制颜色代码大全(含图)透明度与十六进制代码转换
  5. python和服务器共享文件夹,一行代码python实现文件共享服务器
  6. python邮件发送和图片
  7. 电脑免驱 乐得瑞LDR2001 USB转串口芯片方案介绍
  8. ZD Soft Screen Recorder 注册汉化版 【好用的屏幕录制软件】
  9. 温敏性N-异丙基丙烯酰胺(NIPA)和pH敏感性丙烯酸(AA)接枝纳米聚苯乙烯微球相关研究
  10. 什么是用户画像,用户画像的作用是什么?