详情

首页手游攻略 C# BinarySearch 返回值的具体使用实用指南

C# BinarySearch 返回值的具体使用实用指南

佚名 2026-09-08 16:40:01

平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“C# BinarySearch 返回值的具体采用”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。

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的实例
点击查看更多
推荐专题
热门阅读