根据考试书(Microsoft Press-.NET Framework-Application Development Foundation Self Paced Training Kit 2nd Edition),我正在忙于准备MCTS 70-536考试,此代码示例:

ArrayList al = new ArrayList();
al.AddRange(new string[] { "Hello", "world", "this", "is", "a", "test" });
Console.WriteLine(al.BinarySearch("this"));

将值“2”输出到控制台,因为项“this”位于索引2。同意了这是我运行该代码时获得的输出。

但是如果我运行
Console.WriteLine(al.BinarySearch("world"));

我希望在控制台中获得值1,因为“世界”将位于索引1,但是我得到的值是-7?

谁能解释一下它是如何工作的?

谢谢

最佳答案

您正在执行二进制搜索的数组未排序。这是BinarySearch起作用的要求。

如果不进行排序,则会混淆搜索算法,并使其认为“世界”应排在第七位,但不在数组中:结果为-7。

关于c# - ArrayList BinarySearch,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2317201/

10-11 09:23