美文网首页
2_11基数排序

2_11基数排序

作者: X_Y | 来源:发表于2017-09-06 16:57 被阅读8次

C++的queue实现

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 实现

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 实现

# -*- 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

相关文章

  • 2_11基数排序

    C++的queue实现 C++ vector 实现 python 实现

  • 基数排序(c++) to be continued

    [TOC] 参考 基数排序算法的实现与优化 clickhouse 实现的基数排序源码 基数排序的性能优化 Radi...

  • 数组-基数排序

    采用基数排序方式对数组进行排序 基数排序百科:基数排序排序(Distribution Sort),属于分配式排序,...

  • day12-基数排序

    基数排序 基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”...

  • swift经典算法-基数排序

    基数排序算法 基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子...

  • php-计数排序、基数排序、桶排序

    计数排序、基数排序、桶排序 时间复杂度 O(n) 计数排序 基数排序 桶排序

  • 数据结构之基数排序

    1.基数排序(桶排序)介绍 基数排序(radix sort)属于“分配式排序”(distribution sort...

  • 基数排序(Radix Sort)

    基本思想: 基数排序是一种有意思的排序,在看过其它比较排序后,基数排序真的很有意思。 基数排序(Radix Sor...

  • 5分钟了解基数排序

    5分钟了解基数排序 前言 基数排序无需进行比较和交换,而是利用分配和收集两种基本操作实现排序。基数排序分为两种:第...

  • 算法面经--基数排序

    基数排序 一、算法思路 1.简单介绍 1)基数排序法是属于稳定性的排序,基数排序法的是效率高的稳定性排序法 基数排...

网友评论

      本文标题:2_11基数排序

      本文链接:https://www.haomeiwen.com/subject/irjvjxtx.html