import java.util.Arrays; import java.util.Random; public class TwoDivideDemo02 { /* 要求在一个有序数组中找到大于等于某个数的最左侧的位置 */ public static void main(String[] args) { //要求测试50万次 int testTime = 500000; //成功的话succeed=true boolean succeed = true; //得生成一个随机有序数组,数组的最大长度是maxSize,最大值是maxValue int maxSize = 50; int maxValue = 100; //先写一个随机数产生器 Random ran = new Random(); for (int i = 0; i < testTime; i++) { //自定义一个方法生成一个随机有序数组 int[] arr = generateArray(maxSize, maxValue); //产生一个要找的数 int num = ran.nextInt(maxValue)+1; //利用二分法找到大于等于这个数的最左侧的位置 int index1 = erFenMethod(arr, num); //利用遍历的方法找到大于等于某个数的最左侧的位置 int index2 = bianli(arr,num); //比较两个方法找到的索引值是否相同 if(index1 != index2) { succeed = false;
二分法在一个有序数组中找到大于等于某个数的最左侧的位置
于 2022-05-16 14:41:57 首次发布