<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

    快速排序 (轉)

    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之間的整數
    ??????? var i=Math.random();
    ??????? return Math.round((n-m)*i+m);
    ?}
    ?????????? ?
    ?????????? ?
    function getRandomArr(m,n,l){
    ? //m:生成隨即整數的最小值,n:生成隨即整數的最大值,l:生成的數組的長度
    ??? 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: 用于排序的數組的元素個數
    ??? //生成用于排序的數組
    ??? var arr=getRandomArr(1,999999,num);
    ??? ?
    ??? //當元素個數小于10000時,執行n次取平均值 ?
    ??? var n=Math.ceil(10000/num);
    ??? ?
    ??? //生成多個用于排序的數組的拷貝
    ??? 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+"個元素的數組,平均每次排序花費時間如下:\n"
    ??? +"Array.prototype.sort:"+((t3-t2)/n)+"ms\n"
    ??? +"quickSort:"+((t2-t1)/n)+"ms\n"
    ??? );
    ??? ?
    ??? alert("排序結果是否正確:"+(sortArrs[0].join()==quickSortArrs[0].join()));
    }

    pk(500);
    pk(2000);
    pk(30000);
    </script>
    主站蜘蛛池模板: 99视频免费播放| 国产aa免费视频| 亚洲小说图区综合在线| 国产在线不卡免费播放| 成人免费ā片在线观看| 亚洲av永久无码精品三区在线4 | 99久久综合国产精品免费| 国产精品亚洲一区二区在线观看| 亚洲一区爱区精品无码| 无码一区二区三区免费视频| 亚欧乱色国产精品免费视频| 亚洲手机中文字幕| 亚洲国产V高清在线观看| 18观看免费永久视频| 曰批免费视频播放免费| 亚洲欧洲自拍拍偷午夜色| 久久精品亚洲福利| 一二三四影视在线看片免费 | 99免费在线视频| 少妇无码一区二区三区免费| 亚洲欧洲国产综合AV无码久久| 亚洲人成色77777| 国产成人免费a在线视频app| 曰批全过程免费视频播放网站| 日韩在线观看免费| 成人亚洲国产va天堂| 亚洲V无码一区二区三区四区观看| 男女一边桶一边摸一边脱视频免费| 亚洲一卡2卡3卡4卡国产网站 | 97人伦色伦成人免费视频| 久久成人免费电影| 成人a毛片视频免费看| 亚洲综合丁香婷婷六月香| 免费观看的av毛片的网站| 一级毛片免费观看不卡视频| 日韩毛片在线免费观看| 最新国产精品亚洲| 亚洲精品综合久久中文字幕| 在线亚洲午夜理论AV大片| 日日操夜夜操免费视频| 18禁免费无码无遮挡不卡网站 |