日期:2014-05-16  浏览次数:20376 次

【提问】关于数组排序的思考?????
自己做个测试:
JScript code

            function test()
            {
              var str="1,3,2,5,10,4,7,6"; 
              var s=str.split(',');
              alert(s.sort(function(a,b){ alert(a+","+b);return b-a;}));
            }


弹出的信息是:
6,5 4,7, 4,2 5,10 5,3 3,2 2,1 3,2
2,6, 4,7 4,6 3,4 3,7 5,10 5,7 5,4
4,6 5,6 5,10 7,10 7,6 6,10 7,10
最后结果:10,7,6,5,4,3,2,1
问题:
传入函数中a,b的值是随机的吗? 应该不是吧 因为每次执行,显示信息一样.
如果不是,那按什么规律传的呢?

------解决方案--------------------
楼主,您理解可能错了。

function(a,b)只是一个比较函数。

js内置引擎在比较数值的时候,也是与我们普通的冒泡算法是一样的。即索引递归比值。

因此弹出的信息是一样的。

具体你可以参考javascript的数组方法。
------解决方案--------------------
学习