美文网首页JavaScript学习之路
冒泡排序题目 分析

冒泡排序题目 分析

作者: 神淘汰 | 来源:发表于2019-01-14 21:44 被阅读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

    相关文章

      网友评论

        本文标题:冒泡排序题目 分析

        本文链接:https://www.haomeiwen.com/subject/skksdqtx.html