博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c#-二分查找-算法
阅读量:6224 次
发布时间:2019-06-21

本文共 973 字,大约阅读时间需要 3 分钟。

折半搜索,也称二分查找算法二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。

A 搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;

B 如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。

C 如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。

时间复杂度折半搜索每次把搜索区域减少一半,时间复杂度为O\left( \log n  \right)

(n代表集合中元素的个数)空间复杂度O\left(  1  \right)

  

///         /// 二分查找        ///         ///         /// 开始索引 0        /// 结束索引         /// 要查找的对象        /// 
public static int BinarySearch(int[] arr, int low, int high, int key) { int mid = (low + high) / 2; if (low > high) return -1; else { if (arr[mid] == key) return mid; else if (arr[mid] > key) return BinarySearch(arr, low, mid - 1, key); else return BinarySearch(arr, mid + 1, high, key); } }

  

 

实例:

int[] y = new int[] {
1,2,3,4,5,6,7,8,9,10,11,12,13 };int rr = BinarySearch(y, 0, y.Length - 1, 13);Console.Write(rr); //12

 

 

 

转载地址:http://gauna.baihongyu.com/

你可能感兴趣的文章
Hessian学习
查看>>
虚地址到物理地址的转换过程
查看>>
为什么SQL Server函数isdate与cast同时使用报错?
查看>>
Jafka源码粗略解读之一
查看>>
Windows 7 - folder options / single-click or double-click
查看>>
IP分组格式
查看>>
Cocos2d策略类塔防精品手游-MiniTD独家完整源码
查看>>
怎么样和老师学英语呀?
查看>>
【小松教你手游开发】【unity实用技能】unity在游戏中更换角色的shader,比如加个流光...
查看>>
一个脚本实现Mysql的备份
查看>>
内核源码研读预备知识
查看>>
linux 双网卡共享网络
查看>>
CentOS6.5下安装配置VNC
查看>>
javascript成神之路(2):深入理解原型以及原型链的重要性
查看>>
针对WPF开发的报表工具控件Stimulsoft Reports.Wpf
查看>>
电商改变了我们什么?
查看>>
JavaScript之数组Array
查看>>
MySQL-NonMySQL同步工具源码解读——鉴权与注册
查看>>
Oracle SQL Developer 语言设置
查看>>
未解决安装产品 D:\ru\ClientLanguagePack.msi 失败。错误代码为 1603
查看>>