首页 > 解决方案 > 我要疯了还是这是 C# 中的错误?

问题描述

public static void Main()
{

    int[] nums = new int[] {1,0,1,2,3};     
    int k = Array.BinarySearch<int>(nums, 0);
    Console.WriteLine(k);
}

为什么 int[] 数组中 0 的二进制搜索返回 -1 而不是 0 所在的索引?

标签: .netbinary-search

解决方案


BinarySearch仅当元素有序时才有效。

在整个一维排序数组中搜索特定元素...

您可以改用IndexOf它执行线性搜索:

int k = nums.IndexOf(0);

推荐阅读