博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.NET源码中的二分查找实现
阅读量:2505 次
发布时间:2019-05-11

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

二分查找的前提是数据已经预先排序,而然后通过不断地缩小查找范围的方式来查找数据,C#的实现如下:

internal static int InternalBinarySearch(T[] array, int index, int length, T value, IComparer
comparer) { int num1 = index; int num2 = index + length - 1; while (num1 <= num2) { int index1 = num1 + (num2 - num1 >> 1); int num3 = comparer.Compare(array[index1], value); if (num3 == 0) return index1; if (num3 < 0) num1 = index1 + 1; else num2 = index1 - 1; } return ~num1; }
首先确定3个查找点,即 起点,中点,终点。

1,如果中点即是目标值,那么返回中点的值,如果大于中点值,则把范围确定为中点+1到终点,如果小于中点值,则把范围确定为起点到中点-1。

2,如此不断地修改起点和终点的值,直至找到。

注意这里没有用递归的方式。

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

你可能感兴趣的文章
Android 面试题整理总结(二)Java 集合
查看>>
学习笔记_vnpy实战培训day02
查看>>
学习笔记_vnpy实战培训day03
查看>>
VNPY- VnTrader基本使用
查看>>
VNPY - CTA策略模块策略开发
查看>>
VNPY - 事件引擎
查看>>
MongoDB基本语法和操作入门
查看>>
学习笔记_vnpy实战培训day04_作业
查看>>
OCO订单(委托)
查看>>
学习笔记_vnpy实战培训day06
查看>>
回测引擎代码分析流程图
查看>>
Excel 如何制作时间轴
查看>>
股票网格交易策略
查看>>
matplotlib绘图跳过时间段的处理方案
查看>>
vnpy学习_04回测评价指标的缺陷
查看>>
ubuntu终端一次多条命令方法和区别
查看>>
读书笔记_量化交易如何建立自己的算法交易01
查看>>
设计模式04_抽象工厂
查看>>
设计模式05_单例
查看>>
设计模式06_原型
查看>>