@华1 2021-09-26 16:26 采纳率: 94.7%
浏览 35
已结题

这个j=length-1是为什么?data[j+1]=data[j]又是什么意思

img

  • 写回答

3条回答 默认 最新

  • Winson.J 2021-09-26 17:25
    关注

    看题意,length代表的是元素数量,一共5个,这5个元素的索引是0-4;数组的长度是超过元素数量的,否则最后一个元素移不到他后面的位置。
    data[j+1]=data[j]意思是,把索引为 j 的元素移到索引 j+1的位置;
    看题意应该是在索引 = 3的地方插入一个数75,那么55,和90就要向后移一位;

    for(int j = length - 1; j >= i; j--)//这个循环就是移位置的
      data[j+1]=data[j];  //这里要注意,循环体就这一行,所以没有大括号,
    

    第一次循环 j 的初始值为5-1=4,就是原素90的位置,data[j+1] =data[j];就是把data[4]的元素放到data[5]的位置,就是data[4]向后移了一位
    第二次循环 j = 4-- 所以j = 3 data[j+1] =data[j];就是把data[3]的元素放到data[4]的位置(此时原data[4]已经到data[5]了,所以不用担心覆盖)就是data[3]向后移了一位
    此时j = 2,不符循环条件,循环结束.
    data[i] = a意思是把新原素放到 data[3]的位置;
    新增了一个原素,所以length多了一个;这是length++的意思,
    最后一行return true;表示插入成功。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月4日
  • 已采纳回答 9月30日
  • 创建了问题 9月26日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度