public static void main(String[] args){
int[] arr = {1,2,3,4,6,7};
int num = 5;
int left = 0;
int rigth = arr.length-1;
int index = -1;
while(true){
ind mid = (left + right)/2;
if(arr[mid] < num){
left = mid + 1;
}else if(arr[mid] > num){
right = mid - 1;
} else {
index = mid;
break;
}
if(left > right){
index = -1;
break;
}
}
if(index == -1){
// 不存在;
// 将新元素进行插入,创建新数组
int[] newArr = new int[arr.length + 1];
// 需要插入的数组下标,左开右闭原则
int insertIndex = left;
// 将需要插入的下标的之前进行复制
System.arraryCopy(arr,0,newArr,0,insertIndex);
// 需要插入的元素赋值
newArr[insertIndex] = num;
// 将需要插入的下标的之后进行复制
System.arraryCopy(arr,insertIndex,newArr,insertIndex+1,arr.lenght -insertIndex);
System.out.println(Arrarys.toString(newArr));
} else {
// 存在,输出在数组中的下标index;
System.out.println(index);
}
}