```java
// 根据二分法可知,mid指针总是大于或者小于target,并且随着搜索范围的缩小mid指针的位置与target越来越近publicstaticvoidmain(String[] args){int[] nums =newint[]{1};int target =2;System.out.println(searchInsert(nums, target));}publicstaticintsearchInsert(int[] nums,int target){int left =0;int right = nums.length -1;int index =0;while(left <= right){// 如果target查询不到且在有序数组之间或者比数组中的所有书都小则必然会发现mid指针紧挨着target右侧,所以mid为target该插入的位置int medium =(left + right)/2;if(target <= nums[medium]){
index = medium;
right = medium -1;}else{
left = medium +1;}// 如果target查询不到并且大于数组中的所有数,则此时mid指针必然在数组的最右侧mid = nums.length-1,target应该在本数组后加入所以index = mid+1if(medium == nums.length -1&& target > nums[medium]){
index = medium +1;}}return index;}