JavaScript学习之路

冒泡排序题目 分析

2019-01-14  本文已影响28人  神淘汰
一天,接到老师给我出的一道JavaScript题

用num数组储存一系列数字,然后从小到大排序

这个题属于排序问题,我们来用逻辑理清思路

for 循环遍历所有数字,让每两个数字进行比较
i 不断遍历数组中的每个数
j 从第二个元素遍历数组中的每个数

比如说,用户输入
" [1,3,5,2,4,7,9,8] "
先判断前两个数字谁大谁小,将小的放大的前面,大的放小的后面
1<3 所以不用动
如果往后遍历到了 52,前项 5 大于 后项 2
因此用一个新的变量 tmp 储存前项 5,让前项和后项交换的同时,前项被替换掉后,可以用tmp代替前项放入,完成替换。

大概是这样的

即使前面 13的位置中少了个2,但是3迟早要跟2进行比较替换

因此,先建立一个for循环,条件是i需要遍历到遍历完数组中所有数字为止

for(var i=0;i<nums.length;i++){
    
}

接着,要让前项和后项进行比较,i为前项的话,后项则是jji大1

for(var i=0;i<nums.length;i++){
    for(var j=i+1;j<nums.length;j++){
    }
}

运用前面对比前项和后项放入代码中

for(var i=0;i<nums.length;i++){
    for(var j=i+1;j<nums.length;j++){ 
      var tmp=nums[i];
      nums[i]=nums[j];
      nums[j]=tmp;
    }
}

最后全部替换完,输出结果

document.write(nums);

B站视频讲解:
https://www.bilibili.com/video/av40789868

上一篇下一篇

猜你喜欢

热点阅读