冒泡排序题目 分析

一天,接到老师给我出的一道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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容