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

为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. 电厂运维的cis数据_变配电智能化运维作用和优点,智慧供配电物联网
  2. Tcl学习之--表达式
  3. python469教程_从入门到精通真不难:Python最佳学习路线(视频学习教程)分享
  4. python 安卓应用层_Android应用层源码阅读笔记--Application
  5. vb mysql 教程_VB6 数据库 基础 教程
  6. 100个Python实战项目(十二)Python 并发图像下载器
  7. typora插入文件到服务器,写作神器Typora入门指南
  8. 对称密码(共享秘钥密码)
  9. Android进阶知识(五):IPC基本概念之Binder、Binder工作机制及其原理
  10. python画菱形的代码_python绘制菱形
  11. MapReduce作业提交流程
  12. 通过几道CTF题学习yii2框架
  13. 数组取出使用某一个entiti
  14. 大阳能充电新技术---Powerfoyle
  15. python 取数组最后一个,如何获取数组中的最后一个键?
  16. 3D角色 毛发制作 XGen关于导向的基本操作
  17. VMware vsphere和VMware vsphere Hypervisor有什么不同
  18. ndk开发(二)JNI、java互调
  19. 查询数据库中的重复数据记录
  20. 滴水逆向作业——指针04

热门文章

  1. LeetCode-638. 大礼包
  2. python找出1000以内所有素数_python实现输出1到1000以内的素数
  3. C# 纷享销客API接口调用
  4. 学会这几招,让你的项目顺利通过验收
  5. MySQL的数据迁移
  6. 2019年 - 年终总结
  7. adb查看手机cpu使用率_使用adb命令查看手机cpu/内存等信息
  8. 传统金融企业如何做微服务?
  9. Stc单片机写一个简易计算机,基于STC89C52单片机的简易计算器.doc
  10. uniapp页面生成海报并保存和分享微信