2_11基數(shù)排序

C++的queue實(shí)現(xiàn)

class RadixSort {
    public:
        int* radixSort(int* A, int n) {
            // write code here
            for(int i=0; i<4; i++){
                vector< queue<int> > range(10);
                for(int j=0; j<n; j++){
                    range[A[j] / (int)pow(10,i) % 10].push(A[j]);
                }
                int p = 0;
                for(int k=0; k<10; k++){
                    while(!range[k].empty()){
                        A[p] = range[k].front();
                        range[k].pop();
                        ++p;
                    }
                }
            }
            return A;
        }
};

C++ vector 實(shí)現(xiàn)

class RadixSort {
    public:
        int* radixSort(int* A, int n) {
            // write code here
            for(int i=0; i<4; i++){
                vector< vector<int> > range(10);
                for(int j=0; j<n; j++){
                    range[A[j] / (int)pow(10,i) % 10].push_back(A[j]);
                }
                int p = 0;
                for(int k=0; k<10; k++){
                    for(int l=0; l<range[k].size(); l++){
                        A[p] = range[k][l];
                        ++p;
                    }
                }
            }
            return A;
        }
};

python 實(shí)現(xiàn)

# -*- coding:utf-8 -*-

class RadixSort:
    def radixSort(self, A, n):
        # write code here
        # max_num = max(A)
        for ex in range(0,4):
            radix = [[] for i in range(10)]
            for val in A:
                radix[val/(10**ex)%10].append(val)
            A = []
            for arr in radix:
                A.extend(arr)
            #A = [A.extend(arr) for arr in radix]
        return A
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容