11问答网
所有问题
c# 冒泡排序里 内层循环的 n-1-i 怎么理解
// 将最大的元素交换到最后
for(j = 0;j < score.length-1-i;j++)
举报该问题
推荐答案 推荐于2018-05-11
首先,java的数组下标是从0开始,所以如果你有10个数组项,就只能到9,所以
score.length-1知道吧,就这个道理,
其次,-i的意思是这样的,外层循环做了多少次,就已经有多少项已经冒到最后了,对于它们,不用再去比较了,这个-i的作用就是避免再对已经冒到最后的项再比较一次,已经冒到最后的那些顶,你比较也好,不比较也好,都是一样的结果,为了效率,是不用比较的
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://11.wendadaohang.com/zd/278q7S8F2.html
其他回答
第1个回答 2013-08-21
之所以要数组的长度减一,是因为数组是从0开始的,比如说一个数组有7个元素,它的长度为7,分别为
a[0],a[1],a[2],a[3]a[4],a[5],a[6]这7个所以当你要取数组中最后一个a[6]时是需要用长度减1的
而为什么要减i呢,则是因为你的冒泡排序是把最大的放到最后一位,比如第一次循环的时候进行排序完,最后一位是最大的了,根本没有必要在第二次循环当中把他在拿去比大小了吧,并且如果不减i的话,只能排出最大一位(可以用来进行求数组中最大的值),以此类推……
第2个回答 2013-08-21
for i:=1 to n do a1:=0语句是错误的,应该下面这样:
for i:=1 to n do a1[i]:=0
因为var a1:array[1..50] of integer;的定义a1是一个有50个元素的数组,这50个元素分别用a1[1]、a1[2]、a1[3]、……、a1[50]来表示,而 for i:=1 to n do 语句;的功能是i分别为1~50执行一次这个语句。
补充:
不要盲目相信权威,开动脑筋。
相似回答
冒泡排序里
n个数字要排序 外层循环n–
1
内层循环n
–1–
i
这句话是什...
答:
void maopaoSprt(int a[],int n){ for(int
i
=0;i<
n-1
;i++){ //
循环
控制交换的轮数 for(int j=0;j<n-i;j++){//循环控制每轮需要交换的次数 if(a[j]>a[j+1]){ int temp = 0;temp = a[j];a[j] = a[j+1];a[j+1] = temp;} } } } ———版权声明:本文为C...
大家正在搜
冒泡排序外循环和内循环
冒泡排序为什么要用两层循环
对n个不同的排序码进行冒泡排序
冒泡排序内循环
冒泡排序的循环不变式
冒泡排序是一种什么排序
冒泡排序两重循环
冒泡排序的原理
对n个不同的关键字进行冒泡排序
相关问题
冒泡排序里 n个数字要排序 外层循环n–1 内层循环n–1–...
冒泡排序算法中的内层for循环条件表达式这样写为什么结果不对...
为何冒泡排序要循环n-1遍
C#冒泡排序
C语言,冒泡排序那里,为什么要定义一个i,一个j他们的用处分...
冒泡排序中的n起什么作用,我看不懂n在程序中的作用
冒泡排序法没看懂
冒泡排序在最坏的情况下的比较次数为什么是n(n-1)/2?