zoukankan      html  css  js  c++  java
  • 基数排序【代码】

    思路参考《算法导论》P110

    另外,这位老哥讲的很不错:http://www.cnblogs.com/kkun/archive/2011/11/23/2260275.html

    -------------------------------------------------------------------代码-------------------------------------------------------------------

     1 // 基数排序.cpp: 定义控制台应用程序的入口点。
     2 //
     3 
     4 #include "stdafx.h"
     5 #include <iostream>
     6 #include <vector>
     7 #include <math.h>
     8 
     9 using namespace std;
    10 
    11 int RADIX(vector<int> &A,int d)//出于简单考虑,我们假设A中所有的数都是d位
    12 {
    13     vector<vector<int>> bucket(10);//用二维数组也行
    14     int temp;
    15     for (int i = 0; i < d; i++)
    16     {
    17         for (int j = 0; j < A.size(); j++)
    18         {
    19             temp = (int)(A[j] / pow(10, i)) % 10;
    20             bucket[temp].push_back(A[j]);
    21         }
    22         int ptr = 0;
    23         for (int i = 0; i < 10; i++)
    24         {
    25             for (int j = 0; j < bucket[i].size(); j++)
    26             {
    27                 A[ptr++] = bucket[i][j];
    28             }
    29             bucket[i].erase(bucket[i].begin(), bucket[i].end());
    30         }
    31     }
    32     return 0;
    33 }
    34 
    35 int main()
    36 {
    37     vector<int> A = {329,457,657,839,436,720,355};
    38     for (auto c : A)
    39         cout << c << ends;
    40     cout << endl;
    41 
    42     RADIX(A,3);
    43     for (auto c : A)
    44         cout << c << ends;
    45     cout << endl;
    46     return 0;
    47 }

    运行结果如下:

    只有0和1的世界是简单的
  • 相关阅读:
    chrom插件开发
    实验7
    第六次实验报告
    c++第五次实验报告
    c++第四次实验报告
    c++第三次实验报告
    C++第二次实验
    c++第一次作业
    HttpWebRequest调用webservice
    树状组织结构-Tree
  • 原文地址:https://www.cnblogs.com/nullxjx/p/8283452.html
Copyright © 2011-2022 走看看