二分查找失败 元素插入

if(low>high){
    for (i=n-1;i>high;i--) A[i+1]=A[i];
    A[i+1=x];

A[i+1]=A[i]; 是在 for 循环内部执行的,因此它属于 for 循环的循环体。而 A[i+1=x]; 则位于 for 循环之外,因此是在 for 循环执行完毕后执行的。这两个语句不是分开的,而是在不同的位置。

  1. if(low>high) 是判断条件,如果条件成立,表示要执行插入操作。
  2. 如果满足条件,进入 for 循环。
  3. for 循环从 n-1 处开始向数组的高端遍历,直到 high 位置(不包括 high 位置)。
  4. for 循环内部,A[i+1]=A[i]; 将数组中的元素依次向后移动一位。
  5. 循环结束后,执行 A[i+1=x];x 插入到 high 位置后的位置,完成插入操作。

for 循环结束后,i 的值实际上是 high 的位置,而不是 high 的后一个位置。因为 for 循环的终止条件是 i > high,所以循环结束时,i 的值是 high。而 A[i+1=x]; 中的 i+1 就是插入到 high 后面的位置。所以,i 指向了 high

在许多编程语言中,包括 C、C++、Java 等,循环变量(比如 i)在 for 循环结束后仍然存在,并且其作用范围延伸到循环结束后的代码块。这种情况下,i 的值会保留为循环结束时的值。

因此,在你的代码片段中,for 循环结束后,i 仍然存在,并且其值是循环结束时的值,即 high 的前一个位置。

如果你不希望 i 在循环结束后继续存在,你可以在 for 循环中声明 i,这样 i 的作用范围就会被限制在 for 循环内部。例如:

for (int i = n - 1; i > high; i--) {
    A[i + 1] = A[i];
}

这样做可以确保在 for 循环结束后,i 将不再可用。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陆小果不会写代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值