C# BinarySearch 返回值的具体使用实用指南
平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“C# BinarySearch 返回值的具体采用”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。
目录
- 未找到时的负数值
- 情况1:查找 25(不存在)
- 情况2:查找 5(比所有值都小)
- 情况3:查找 60(比所有值都大)
binarySearch()方法的得到值为:
| 得到值 | 含义 |
|---|---|
| ≥ 0 | 找到元素,得到其在集合中的索引位置 |
| < 0 | 未找到元素,得到一个负数 |
1、如果找到关键字,则得到值为关键字在数组中的位置索引,且索引从0开始
2、如果没有找到关键字,得到值为负的插入点值,所谓插入点值就是第一个比关键字大的元素在数组中的位置索引,而且这个位置索引从1开始。
未找到时的负数值
元素未找到时,得到值是一个负数,其计算公式为:
得到值 = ~(插入点索引)
或等价于:
插入点索引 = ~得到值
插入点 = 如果将该元素插入集合中,它应该所在的位置(保持排序顺序)。
假设有排序数组:[10, 20, 30, 40, 50]
情况1:查找 25(不存在)
// BinarySearch 查找 25
// 应该插入在 20 和 30 之间,也就是索引 2 的位置,但是索引从1开始,所以变成3,再取负值,就是-3
int index = BinarySearch(25); // 返回 -3
//-3使用 ~(按位取反)可以得到从0开始的插入点值
int insertIndex = ~index; // ~(-3) = 2
// insertIndex = 2
情况2:查找 5(比所有值都小)
// BinarySearch 查找 5
// 应该插入在最前面,索引 0 的位置
// 所以返回:-1
int index = BinarySearch(5); // 返回 -1
int insertIndex = ~index; // ~(-1) = 0
// insertIndex = 0
情况3:查找 60(比所有值都大)
// BinarySearch 查找 60
// 应该插入在最后,索引 5 的位置(数组长度)
// 所以返回: -6
int index = BinarySearch(60); // 返回 -6
int insertIndex = ~index; // ~(-6) = 5
// insertIndex = 5
到此这篇关于C# BinarySearch 得到值的具体采用的文章就介绍到这了,更多相关C# BinarySearch 得到值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多兼容脚本之家!
您可能感兴趣的文章:
- Java实现二分查找BinarySearch算法
- ChatGPT教你用Python实现BinarySearchTree详解
- binarySearch在java的查找实例用法
- Java数组采用binarySearch()方法查找指定元素的实现
- Java 借助binarySearch实现抽奖计算逻辑
- Java binarysearch方法原理详解
- java数据结构之二分查找法 binarySearch的实例
相关资讯
-
09.08
C# 读取和绘制 Shapefile (SHP) 文件的详细过程实用指南
-
09.08
C# 实现方式superpowers进化功能示例实用指南
-
09.08
C#代码实现方式在Excel中创建数据透视图实用指南
-
09.08
C# BinarySearch 返回值的具体使用实用指南
-
09.08
基于C#实现方式的文件分割与合并工具实用指南
-
09.08
c#之System.OutOfMemoryException解读实用指南
游戏推荐
推荐专题
热门阅读
推荐下载
-
-
下载
- |
-
-
下载
- 《行尸走肉第一章》免安装中文汉化硬盘版下载
- 单机|436 MB
- 一款以动作冒险为主题的游戏
-
-
下载
- 《街头霸王X铁拳》免安装中文汉化硬盘版下载
- 单机|111MB
- 一款非常好玩的格斗游戏
-
-
下载
- |
-
-
下载
- 《暗黑破坏神3》免安装繁体中文正式版下载
- 单机|7630 MB
- 一款以角色扮演为主题的游戏
-
-
下载
- 《马克思佩恩3》免安装硬盘版下载
- 单机|27033 MB
- 一款以第三人称射击为主题的游戏