首页  

获取有序数组中第一个大于等于目标值的索引     所属分类 java 浏览量 446
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引 
如果目标值不存在于数组中,返回它将会被按顺序插入的位置 
如何获取有序数组中第一个大于等于目标值的位置索引 
有序数组的二分查找

int searchInsertIndex(double[] arr,double value)
arr 有序数组 存在重复值

方法接受两个参数,有序数组和指定元素,通过二分查找法,获取数组中第一个大于等于指定元素的索引位置。



public static int searchInsertIndex(double[] arr,double value){ if(arr == null || arr.length <=0){ return 0; } int low = 0; int high = arr.length - 1; while(low <= high){ int mid = low + (high-low) /2 ; if(arr[mid] < value){ low = mid + 1; }else{ if(mid == 0 || arr[mid-1] < value){ return mid; }else{ high = mid -1; } } } return arr.length; }
double[] arr = {1,1,2,3,3,5,6,7,8}; // 0 searchInsertIndex(arr,1); // 9 searchInsertIndex(arr,9); // 3 searchInsertIndex(arr,2.1); // 3 searchInsertIndex(arr,3); // 5 searchInsertIndex(arr,3.1);

上一篇     下一篇
提问的艺术

mysql JDBC rewriteBatchedStatements

spring 组件类名相同 bean name冲突

异常值检测的两种常用方法

好习惯之预习

小学生的一些好习惯