Java 对于元素为';t found,如何返回应该插入的索引
我想使用二进制搜索来查找元素应该放置在的数组索引。这是为了在向下移动较大的元素时将元素插入数组。如何修改此二进制搜索以指定未找到元素的位置Java 对于元素为';t found,如何返回应该插入的索引,java,algorithm,Java,Algorithm,我想使用二进制搜索来查找元素应该放置在的数组索引。这是为了在向下移动较大的元素时将元素插入数组。如何修改此二进制搜索以指定未找到元素的位置 int binarySearch(int arr[], int x) { int low = 0; int mid = 0; int high = arr.length - 1; while (low <= high) { mid = (low + hig
int binarySearch(int arr[], int x) {
int low = 0;
int mid = 0;
int high = arr.length - 1;
while (low <= high) {
mid = (low + high) / 2;
if (x < arr[mid]) {
high = mid - 1;
} else if (x > arr[mid]) {
low = mid + 1;
} else {
return mid;
}
}
//This is what im trying to get to work
if (x < arr[mid]) {
return high;
} else {
return low;
}
}
int二进制搜索(int-arr[],int-x){
int低=0;
int-mid=0;
int高=阵列长度-1;
而(低arr[中]){
低=中+1;
}否则{
中途返回;
}
}
//这就是我努力工作的目的
如果(x
谢谢。看看java.util.Arrays.binarySearch()是如何做到的。看看java.util.Arrays.binarySearch()是如何做到的。Arrays.binarySearch()返回
-(插入点+1)
。这样,就可以返回值≥ 0是命中,返回值<0是未命中,带有insertion\u point=-return\u value-1
数组。binarySearch()返回-(insertion\u point+1)
。这样,就可以返回值≥ 0是命中和返回值< 0是错误的,用<代码>插入式点= -ReTrutyValue- 1 < /C> > < /P> < P>查看并在C++标准模板库中。这些链接指向规范;实现是在同一个网站的实现部分中的文件STLIGALGO.H中,但我是一个新用户,因此一次不能允许超过两个URL。 < P>查看和在C++标准模板库中。这些链接指向规范;实现在同一网站的实现部分的stl_algo.h文件中,但我是新用户,因此不允许一次发布两个以上的URL。和-(x+1)=~x=-x-1
,仅供参考:)和-(x+1)=~x=-x-1
,仅供参考:)