• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            liyuxia713

            蹣跚前行者

            常用鏈接

            統計

            Algorithms

            C++

            最新評論

            基本排序算法及分析(六):桶式排序

            桶式排序是對一個有n個整型元素的數組a[n],其中對任意i,0 <= a[i] <= m的特殊排序算法。
            可以對 n==m, n != m分別處理。寫代碼時需要注意的的是a[i]是訪問第i-1個元素,而非第i個。
             1/************************************************************************************/
             2/* Bucket_Sort.h  桶式排序算法                                                      */
             3/* 問題:對一個有n個整型元素a[0],a[1],…,a[n-1]的數組排序,其中0 <= a[i] <= m,任意i */ 
             4/* 程序:運行時間為O(m+n),輔助空間為O(m)                                            */
             5/* 當 n=m 時特殊處理,運行時間為O(N), 輔助空間為O(1)                                */
             6/************************************************************************************/
             7
             8#include <vector>
             9
            10/*m != n */
            11void Bucket_Sort_m(int *a, int n, int m) 
            12{          
            13    std::vector<int> temp(m,0); 
            14    int i;
            15    for(i = 0; i != n; ++i)  //遍歷a[]
            16        ++temp[a[i]-1]; //如果有對應于下標的值,標記為1,否則為0
            17
            18    i = 0
            19    for(int j = 1; j <= m; ++j) //遍歷temp向量
            20        if(temp[j-1]) a[i++= j;
            21        
            22    temp.clear();
            23}

            24
            25/* m == n */
            26/* 最后的結果是a[i-1] = i */
            27void Bucket_Sort(int *a,int n)
            28{
            29    for(int i = 1; i <= n; ++i)
            30    {
            31        while(a[i-1!= i) 
            32        {
            33             int temp = a[a[i-1]-1];
            34             a[a[i-1]-1= a[i-1];
            35             a[i-1= temp;
            36        }

            37        /* 偽代碼:如果假設可以通過a[i]訪問數組的第i個元素,而不是第i-1個 */
            38        /*while(a[i] != i) 
            39        {
            40             int temp = a[a[i]];
            41             a[a[i]] = a[i];
            42             a[i] = temp;
            43        }
            44        */

            45    }
                
            46}

            posted on 2009-04-23 19:03 幸運草 閱讀(1272) 評論(0)  編輯 收藏 引用 所屬分類: Algorithms

            伊人色综合久久天天人手人婷 | 人妻精品久久久久中文字幕一冢本| 久久精品国产久精国产| 久久精品国产亚洲av麻豆小说| 亚洲AV无码1区2区久久| 国内精品欧美久久精品| 久久99精品久久久久久不卡| 麻豆精品久久久久久久99蜜桃| 久久久久人妻一区精品色| a高清免费毛片久久| 久久精品国产精品亜洲毛片| 久久久久久夜精品精品免费啦| 久久国产亚洲精品麻豆| 亚洲精品午夜国产va久久 | 一本大道久久a久久精品综合| 国产 亚洲 欧美 另类 久久| 亚洲香蕉网久久综合影视| 国产L精品国产亚洲区久久| 人妻无码αv中文字幕久久琪琪布| 久久久青草青青亚洲国产免观| 欧美亚洲国产精品久久高清| 国内精品久久久久久久影视麻豆| 亚洲日本va中文字幕久久| 亚洲国产日韩欧美综合久久| 99热精品久久只有精品| 婷婷久久久亚洲欧洲日产国码AV| 久久人人爽人人爽人人片AV麻豆 | 伊人精品久久久久7777| 精品欧美一区二区三区久久久 | 亚洲午夜无码久久久久| 日韩电影久久久被窝网| 久久99亚洲综合精品首页| 久久精品国产一区| 日韩欧美亚洲综合久久影院d3| 久久久精品人妻一区二区三区四| 亚洲女久久久噜噜噜熟女| 一本一道久久综合狠狠老| 亚洲天堂久久久| 久久精品国产亚洲精品2020 | 久久99久久99精品免视看动漫| 久久艹国产|