根据考试书(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/