<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    咖啡伴侶

    呆在上海
    posts - 163, comments - 156, trackbacks - 0, articles - 2

    快速排序 (轉(zhuǎn))

    Posted on 2009-06-17 12:10 oathleo 閱讀(1301) 評論(0)  編輯  收藏 所屬分類: Web
    在ie6.0中快速排序算法比Array對象的sort方法快多了,對于元素比較少的,快速排序的速度基本上是sort方法的5倍左右,對于30000個元素快速排序是sort方法速度的十幾倍
    在ff2.0中兩種排序算法速度基本上差不多,快速排序算法稍微快一點

    <script>
    function rand(m,n){
    ????? //生成一個m、n之間的整數(shù)
    ??????? var i=Math.random();
    ??????? return Math.round((n-m)*i+m);
    ?}
    ?????????? ?
    ?????????? ?
    function getRandomArr(m,n,l){
    ? //m:生成隨即整數(shù)的最小值,n:生成隨即整數(shù)的最大值,l:生成的數(shù)組的長度
    ??? var resultArr=[];
    ??? for(var i=0;i<l;i++){
    ??????? resultArr.push(rand(m,n))
    ??? }
    ??? return resultArr;
    }
    ??? ?
    function partition(a,st,en) ?
    { ?
    ??? var s=st; ?
    ??? var e=en+1; ?
    ??? var temp=a[s]; ?
    ??? while(1) ?
    ??? { ?
    ??????? while(a[++s]<temp); ?
    ??????? while(a[--e]>temp); ?
    ??????? if(s>e)break; ?
    ??????? var tem=a[s]; ?
    ??????? a[s]=a[e]; ?
    ??????? a[e]=tem; ?
    ??? } ?
    ??? a[st]=a[e]; ?
    ??? a[e]=temp; ?
    ??? return e; ?
    } ?

    function doSort(a,s,e) ?
    { ?
    ??? if(s<e) ?
    ??? { ?
    ??????? var pos=partition(a,s,e); ?
    ??????? doSort(a,s,pos-1); ?
    ??????? doSort(a,pos+1,e); ?
    ??? } ?
    } ?
    ??? ?
    Array.prototype.quickSort = function() ?
    { ?
    ????? doSort(this,0,this.length-1); ?
    }


    function sortIntF(a,b){return a-b}
    function pk(num){
    ??? //num: 用于排序的數(shù)組的元素個數(shù)
    ??? //生成用于排序的數(shù)組
    ??? var arr=getRandomArr(1,999999,num);
    ??? ?
    ??? //當元素個數(shù)小于10000時,執(zhí)行n次取平均值 ?
    ??? var n=Math.ceil(10000/num);
    ??? ?
    ??? //生成多個用于排序的數(shù)組的拷貝
    ??? var quickSortArrs=[];
    ??? var sortArrs=[];
    ??? for(var i=0;i<n;i++){
    ??????? quickSortArrs.push(arr.slice(0));
    ??????? sortArrs.push(arr.slice(0));
    ??? }
    ??? ?
    ??? var t1=new Date();
    ??? ?
    ??? for(var i=0;i<n;i++){
    ??????? quickSortArrs[i].quickSort();
    ??? }
    ??? ?
    ??? var t2=new Date();
    ??? ?
    ??? for(var i=0;i<n;i++){
    ??????? sortArrs[i].sort(sortIntF);
    ??? }
    ??? ?
    ??? var t3=new Date();
    ??? ?
    ??? alert("性能比較,對于"+num+"個元素的數(shù)組,平均每次排序花費時間如下:\n"
    ??? +"Array.prototype.sort:"+((t3-t2)/n)+"ms\n"
    ??? +"quickSort:"+((t2-t1)/n)+"ms\n"
    ??? );
    ??? ?
    ??? alert("排序結(jié)果是否正確:"+(sortArrs[0].join()==quickSortArrs[0].join()));
    }

    pk(500);
    pk(2000);
    pk(30000);
    </script>
    主站蜘蛛池模板: 日本永久免费a∨在线视频| 亚洲蜜芽在线精品一区| 国产成人麻豆亚洲综合无码精品| 亚洲中文字幕久久精品无码APP| 亚洲av午夜福利精品一区人妖| 亚洲国产视频一区| 亚洲第一成年免费网站| free哆拍拍免费永久视频| 久久免费动漫品精老司机| 成人女人A级毛片免费软件| 四虎在线播放免费永久视频| 激情综合色五月丁香六月亚洲| 亚洲伊人tv综合网色| 亚洲字幕AV一区二区三区四区| 特黄aa级毛片免费视频播放| 免费福利在线视频| 成年人免费观看视频网站| 亚洲欧洲日本在线| 亚洲综合色一区二区三区小说| 亚洲精品乱码久久久久久蜜桃图片| yellow视频免费在线观看| 99久在线国内在线播放免费观看| 国外成人免费高清激情视频 | 中文字幕乱码系列免费| 99久久久精品免费观看国产| 婷婷亚洲天堂影院| 久久亚洲AV无码精品色午夜麻豆| 亚洲精品无码久久久久久| 国产真人无码作爱免费视频| 丁香花在线观看免费观看| 最新精品亚洲成a人在线观看| 亚洲色欲色欲www| 中文字幕在线免费视频| 24小时日本在线www免费的| 日韩亚洲变态另类中文| 亚洲色大成网站www永久网站| a毛片免费播放全部完整| 好男人看视频免费2019中文| 亚洲成AV人片在| 国产偷国产偷亚洲高清在线| 久久成人无码国产免费播放|