• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

排序,问什么要对数组长度减一呢

inta[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51};inttemp=0;for(inti=0;i

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与2

如果没看错这应该是冒泡排序,因为计算机是顺序执行的,所以我们可以分解来看,只看 i = 0 的时候
i = 0, j 的循环是 0 到 length - 1 - 0   
也就是说在这次循环中要做一下判断 a[0] > a[1] 那么交换 a[1] > a[2] 那么交换 ........ a[length - 1] > a[length] 那么交换
到此,可以保证一点:a[length] 一定是该数组中的最大值
第二步 i = 1, j 的循环是 0 到 length - 1 - 1
也就是判断 a[0] > a[1] 交换 a[1] > a[2] 交换 ...... a[length - 2] > a[length -1] 交换
到此,可以保证: a[length - 1] 一定是该数组中的最大值 (a[length]已经被排除在外)
第三步 i = ...
结束后的数组就是 从小到大顺序排列了
如果没思路就动手照着计算机的执行顺序写一写

使用道具 举报

打印一下数组的长度,数组长度是里面存放的数据的个数的,而里面数据的索引是从0开始的,索引到最后一个是数据的个数-1,你数数是从1开始数的嘛,然而索引从0开始的,所以要减一咯

使用道具 举报

发新帖

发布任务需求已有1031290位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!