<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>
    主站蜘蛛池模板: 在线视频精品免费| 黄色免费在线网站| 国内外成人免费视频| 亚洲黄色在线视频| 中文字幕免费高清视频| 91亚洲一区二区在线观看不卡 | 精品亚洲成A人无码成A在线观看 | www一区二区www免费| 亚洲色精品88色婷婷七月丁香 | 一级成人a做片免费| 久久久久久久亚洲精品| 国产精品美女久久久免费 | 亚洲日产韩国一二三四区| 黄视频在线观看免费| 亚洲Av永久无码精品三区在线| 国产精品免费一区二区三区四区| 亚洲伦理一区二区| 国产成人免费高清激情明星| 亚洲中文字幕无码中文字| 国产一卡二卡≡卡四卡免费乱码 | 大地影院MV在线观看视频免费| 久久久久久a亚洲欧洲aⅴ| 亚洲网站在线免费观看| 亚洲日韩一中文字暮| 国产成人无码区免费A∨视频网站| 美女黄网站人色视频免费| 亚洲综合伊人久久综合| 日韩免费无码一区二区三区 | 国产亚洲精品无码专区| 95老司机免费福利| 亚洲а∨精品天堂在线| 久久国产成人精品国产成人亚洲 | 免费国产黄网站在线观看可以下载| 亚洲一级毛片免观看| 亚洲AV无码一区二区三区国产| 国产日韩一区二区三免费高清| 亚洲一区二区三区播放在线 | 亚洲毛片免费视频| 免费人成激情视频| 99爱免费观看视频在线| 无码一区二区三区亚洲人妻|