怎么看出sortNum(a,b)是冒泡排序

来源:7-22 数组排序sort()

niancheng

2017-06-03 19:50

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Array对象 </title>

<script type="text/javascript">

   function sortNum(a,b) {

       return b-a;

   }

var myarr = new Array("80","16","50","6","100","1");

document.write(myarr+"<br/>");

document.write(myarr.sort(sortNum));

</script>

</head>

<body>

</body>

</html>


写回答 关注

4回答

  • ESKY3687376
    2017-07-21 16:04:30

    在函数里面加了一段   document.write("(a-b)="+(a-b)+"</br>");终于看明白了
    (a-b)=64----第一次调用函数:a是80,b是16,结果为64>0,因此交换位置:16,80,50,6,100,1
    (a-b)=30----第二次调用函数:a是80,b是50,结果为30>0,因此交换位置:16,50,80,6,100,1
    (a-b)=-34----第三次调用函数:a是16,b是50,结果为-34<0,因此不交换位置:16,50,80,6,100,1
    (a-b)=74----第四次调用函数:a是80,b是6,结果为74>0,因此交换位置:16,50,6,80,100,1
    (a-b)=44----第五次调用函数:a是50,b是6,结果为44>0,因此交换位置:16,6,50,80,100,1
    (a-b)=10----第六次调用函数:a是16,b是6,结果为10>0,因此交换位置:6,16,50,80,100,1
    (a-b)=-20----第七次调用函数:a是80,b是100,结果为-20<0,因此不交换位置:6,16,50,80,100,1
    (a-b)=99----第八次调用函数:a是100,b是1,结果为99>0,因此交换位置:6,16,50,80,1,100
    (a-b)=79----第九次调用函数:a是80,b是1,结果为79>0,因此交换位置:6,16,50,1,80,100
    (a-b)=49----第十次调用函数:a是50,b是1,结果为49>0,因此交换位置:6,16,1,50,80,100
    (a-b)=15----第十一次调用函数:a是16,b是1,结果为15>0,因此交换位置:6,1,16,50,80,100
    (a-b)=5----第十二次调用函数:a是6,b是1,结果为5>0,因此交换位置:1,6,16,50,80,100
    1,6,16,50,80,100
    应该是一种优化版的冒泡排序法

  • 这人不懒_学习刻苦
    2017-06-16 18:49:32

    这不是冒泡排序,这是sort数组排序。冒泡排序用到for循环的。

    function bubbleSort(arr) {    
        var len = arr.length;    
        for (var i = 0; i < len; i++) {        
            for (var j = 0; j < len - 1 - i; j++) {            
                if (arr[j] > arr[j+1]) {        
                    var temp = arr[j+1];        
                    arr[j+1] = arr[j];
                    arr[j] = temp;
                }
            }
        }    
        return arr;
    }


  • 慕娘0531007
    2017-06-03 20:36:40
    function sortNum(a,b){
        return a-b;
        }
        var str = ["2","3","1","6","7","0"];
        document.write(str,"<br/>");
        document.write(str.sort(sorNum))


  • 慕勒7123956
    2017-06-03 20:08:16

    谁说这个是冒泡排序啦

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468060 学习 · 21891 问题

查看课程

相似问题