gpt4 book ai didi

java - 为什么使用 Collections.binarySearch() 时得到错误答案

转载 作者:行者123 更新时间:2023-12-02 07:03:39 24 4
gpt4 key购买 nike

public class BinarySearchCollections {
public static void search(List<String> list) {
list.clear();
list.add("b");
list.add("a");
list.add("c");
System.out.println(Collections.binarySearch(list, "b"));
System.out.println(list);
}
public static void main(String[] args) {
List<String> lis = new ArrayList<String>();
BinarySearchCollections bs = new BinarySearchCollections();
bs.search(lis);
}
}

这里我得到的 ans 为 -3(因为它告诉我它将被添加到什么位置),但我的列表中已经有 b 了。

最佳答案

您的原始列表未排序,因此二分搜索会给您一个无意义的答案。

想象一下它实际需要的步骤:

"Is b > a? Yes, so look higher."

"Is b > c? No, but we can't go lower, so insert at index 2 (aka return -3.)"

如果您希望二分搜索起作用,请给它一个可以采取有意义步骤的列表,然后给您正确的答案。

关于java - 为什么使用 Collections.binarySearch() 时得到错误答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16344913/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com