js的双for循环,求详细解释
varnum=[5,12,6,16,3,15,34,19];varza="";for(vari=0;i<num.length;i++){for(varj=i;j<num....
var num = [5, 12, 6, 16, 3, 15, 34,19];
var za="";
for( var i=0; i<num.length; i++){
for( var j=i; j<num.length; j++){
if(num[i]>num[j]){
za=num[i];
num[i]=num[j];
num[j]=za;
}
}
}
console.log(num)
求详细解释for循环和if里面求法
新手越细越好 最好能把每次循环都写出来
不理解for循环的方法 展开
var za="";
for( var i=0; i<num.length; i++){
for( var j=i; j<num.length; j++){
if(num[i]>num[j]){
za=num[i];
num[i]=num[j];
num[j]=za;
}
}
}
console.log(num)
求详细解释for循环和if里面求法
新手越细越好 最好能把每次循环都写出来
不理解for循环的方法 展开
5个回答
展开全部
这个是冒泡排序法的经典例子。
运行完后num数组会被被排序
for循环运行的次序是,外层先走一步,然后内层走完,然后外层再走一步,内层再走一圈。
具体来说,
i=0: j依次遍历0,1,2,3,4,5,6,7,程序比较num[0]和num[0-7],只要发现num[0]比某一个数大,就把num[0]和此数交换
这样一来当i=0的时候,j走了一圈后的结果就是把数组的第一个数,也就是num[0]弄成了整个数组中最小的数(也就是3)
接下来i=1; j依次遍历1,2,3,4,5,6,7
结果是num[1]变成剩下数中最小的(也就是5)
然后i=2;j遍历2,3,4,5,6,7
i=3;j走过3,4,5,6,7
.
.
.
最后的结果就是数组被排序了。
运行完后num数组会被被排序
for循环运行的次序是,外层先走一步,然后内层走完,然后外层再走一步,内层再走一圈。
具体来说,
i=0: j依次遍历0,1,2,3,4,5,6,7,程序比较num[0]和num[0-7],只要发现num[0]比某一个数大,就把num[0]和此数交换
这样一来当i=0的时候,j走了一圈后的结果就是把数组的第一个数,也就是num[0]弄成了整个数组中最小的数(也就是3)
接下来i=1; j依次遍历1,2,3,4,5,6,7
结果是num[1]变成剩下数中最小的(也就是5)
然后i=2;j遍历2,3,4,5,6,7
i=3;j走过3,4,5,6,7
.
.
.
最后的结果就是数组被排序了。
展开全部
这就是个排序算法,如果这个数组前一个数大于后面一个数,就把后面一个数与前面一个数调换一下位置。每轮可以选出这轮最小的数放到数组最前面//而且这个其实可以改进一下var j=i+1
i从第1个数开始,j从第i个数开始。比如i=0时,进入最里面的循环j=0,num[i]=num[j]=5,不符合if语句,j=1,num[i]=5,num[j]=12,不符合if语句.....j=4,num[j]=3,num[i]=5,符合if语句,换位置。依次类推,你就明白了
i从第1个数开始,j从第i个数开始。比如i=0时,进入最里面的循环j=0,num[i]=num[j]=5,不符合if语句,j=1,num[i]=5,num[j]=12,不符合if语句.....j=4,num[j]=3,num[i]=5,符合if语句,换位置。依次类推,你就明白了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个是冒泡排序。
用数组中的每一位和后面的进行比较,然后换位置。
var num = [5, 12, 6, 16, 3, 15, 34,19];
var za="";
for( var i=0; i<num.length; i++){ //数组中的每个位置的数
for( var j=i; j<num.length; j++){ //要比较的数
if(num[i]>num[j]){ //换位置
za=num[i];
num[i]=num[j];
num[j]=za;
}
}
}
console.log(num)
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实这种写法可以改进的,性能会好上不少。稍微做一个逻辑思考,也容易懂,下面贴出代码
for( var i=0; i<num.length-1; i++){
for( var j=i+1; j<num.length; j++){
}
}
可以测试下循环次数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
自己 找个for循环的视频 好好看看吧,这是最基础了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询