CSU-Benjamin 2020-01-13 16:44 采纳率: 33.3%
浏览 231
已采纳

用随机数生成数组,用binarySearch()二分查找该数组却错误?是为什么呢?

import java.util.Arrays;
import java.util.Random;

public class test {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        Random r = new Random();
        int[] a = new int[10];
        for(int i=0;i<a.length;i++)
        {
            a[i] = r.nextInt(100);//0~100随机数
        }
        a[6] = 10;
        System.out.println("===========测试查找============");
        for(int i=0;i<a.length;i++) {
            System.out.print(a[i] + ",");
        }
        System.out.print("\n");
        System.out.println("10 的位置是" + Arrays.binarySearch(a, 10));
    }

}

输出:

===========测试查找============

1,0,15,34,0,58,10,93,66,20,

10 的位置是-6

问题:为什么查找失败呢?

  • 写回答

1条回答 默认 最新

  • 软件求生 2020-01-16 17:08
    关注

    二分法需要排序。
    https://blog.csdn.net/en_joker/article/details/102651217

    建议你看一下源码。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程