谢谢。。
cpio(就这么简单),你说的算法可能行不通。就如果我第一次随机生成的一个值为数组的第一个元素下标,即为:0,那么维数减一后,就不能正确的确定后面的值了吗?因为你所说的算法是根据维数来展开的。

解决方案 »

  1.   

    把数重新排序<script language="JavaScript">
    Array.prototype.index = function(e){
    for(var i=0; i<this.length; i++)
    if (this[i] == e)
    return i;
    }var arr = [2, 4, 3, 8, 5];
    alert(arr);
    var MAX = eval('Math.max(' + arr + ')');
    var MIN = eval('Math.min(' + arr + ')');
    arr[arr.index(MAX)] = arr[0];
    arr[0] = MAX;
    arr[arr.index(MIN)] = arr[arr.length-1];
    arr[arr.length-1] = MIN;
    alert(arr);
    </script>
      

  2.   

    http://community.csdn.net/Expert/TopicView.asp?id=3349196
    //IE5.5+:var ar=[0,1,2,3,4,5,6,7,8,9];
    var n = ar.length;
    var result = new Array(n);
    for (var i=0;i<n;i++) result[i] = ar.splice(Math.floor(Math.random()*ar.length),1);
    document.write(result)这个简单点,但是时间复杂度高些:
    var ar=[0,1,2,3,4,5,6,7,8,9];
    var result = ar.sort(function(){return Math.random()-.5});
    document.write(result)
      

  3.   

    请问emu_ston(吃的就是没文化的亏),
    var ar=[0,1,2,3,4,5,6,7,8,9];
    var result = ar.sort(function(){return Math.random()-.5});
    document.write(result)其中sort()函数是根据function的返回值来排序的吧,但是我看过sort()函数它说只有三种情况,它提供a,b参数,1)a>b,2)a=b ,3)a<b.不是只有三种排序的情况吗?现在看来你写的并没有利用a,b参数,它返回的值有“正”数,也有“负”数,可以给我解释一下吗?
    我都不是很了解这些。。
    谢谢!!