永发信息网

选择排序的一点疑惑

答案:5  悬赏:20  手机版
解决时间 2021-05-10 14:07

  public static void ssort(int[] list){

  int i, j, min, temp;

  for (i = 0; i < list.Length - 1; i++){

  min = i;

  for (j = i + 1; j < list.Length; j++){

  if (list[j] < list[min])

  min = j;

  }

  temp = list[i];

  list[i] = list[min];

  list[min] = temp;
}

上面是程序部分代码,为什么内层循环结束条件是j < list.Length,而不是j < list.Length-1?这样不会数组越界吗?

请路过的大侠帮个忙吧,谢谢了

最佳答案

注意是j < list.Length


而不是j <= list.Length


因此j取不到list.Length


也就不存在内存越界了


如果我的回答你还满意


记得选个满意答案哦

全部回答

第一个 要和第2到第N个都比较。取出最大或最小的。

一直比较到N-1和N比。这样就能一个一个的取出最大或最小值。

我建议你初学的话。就用画图的方式画下,更加容易懂!

选择排序的意思就是先选第一个数与后面的全部比较,第一轮比完最小的或最大的就在第一个位置上了,然后拿第二个跟此后面的数比较,一直比数组长度-1轮次,最后一轮是倒数第二个跟倒数第一个数比较,所以内循环要取得最后一个数。
外层的意思是选择的len-1个,最后一个位置不用再循环了,直接是最小的吧,不会越界的,因为假如长度是5,你只循环的找到了4个位置,内循环才是整个的数组循环。刚好到最后一个

不会的,j<list.length j最大是list.length-1

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我是个女孩,1988年农历10月12号出生的,我以后
家庭教师中川平是什么来头?他的属性是什么?
哈士奇市场价位是多少
忘掉不开心的句子,想忘记过去不开心的事,所
对于法国大革命对于法国命运的评价
推荐一款09年昂达主板!网吧用的!
如皋市哪里有不二家棒棒糖卖啊,,,急
怎么煮粥????
七言诗可以写到56个字吗
三叉港高中分数
工作压力大安慰的句子,工作压力大还得不到认
6年级语文上册习作5写玉怎么写?
梦幻西游这样的100女武器分几钱!!! 懂价的
求Super Junior全体成员名字的韩文和发音
QQ3国55JS号能卖多少
推荐资讯
什么网游好玩 最好是扮演角色的(腾讯的不要
求一款不用鼠标打怪的3D网游,画面最好不要太
一道初三化学题谢谢
為什麼騰訊對DNF開G查得這麼嚴?
梦到自己困在电梯里,后又被困楼顶
那首什么歌的啊
脸上长痘痘,皮肤最近也很油,用什么洗面奶比
有什么品牌的移动硬盘介绍?
仓鼠一次吃多少,田七煲汤后能连渣一起吃吗
看今晚彩票开奖在哪里看的
已知AB,AC,AD是圆O的泫,且∠BAC=∠DAC,泫CE平
核苷酸一会又两种,一会有8钟?标准是什么?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?