这个i>high是什么意思啊

img

img

代码不太全,应该是用的二分吧
如果是二分查找了话,前面的查找过程应该是有
if(A[mid]>x)high--:if(A[mid]<x)low++;
这样的代码来一步步逼近表中与x最接近的值的下标
而这个分支条件是low>high,也就是遍历了整个表之后,low所表述的下标已经大于了high,却仍然没有找到与x相等的元素的情况
由于每一次循环都要进行一次判定是否low>high,所以此时的high应该是正好比x小的那个元素的下标,而low是正好比x大的元素的下标
所以在把x插入时,只需把low到n的元素后移再插入就可以了,因为前后的元素本身就已经排好序了,即

for(int i=n-1;i>=low;i--)
    A[i+1]=A[i];

而前面提过,high恰好小于low恰好大于x,即此时low=high+1
所以用i>high等同于i>=low啦