CPP
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
int middle, left = 0, right = nums.size() - 1;
while(left <= right){ //假定为升序排列
mi = (left + right) / 2;
if(nums[mid] == target){
return mid;
}
else if(nums[mid] > target){
right = mid - 1; // target在mid的左侧
}
else{
left = middle + 1; // target在mid的右侧
}
}
// left > right的情形,数组中无目标值
if(right < mid){ //表示最后一步从right = mid - 1分支跳出,也即nums[mid] > target,重新插入位置即为mid;
return mid;
}
return mid + 1;//表示nums[mid] < target,重新插入位置为mid+1;
}
};