基数排序

来源:互联网 发布:研究所20升级数据 编辑:程序博客网 时间:2024/06/07 16:38
#include <iostream>#include <random>#include <vector>#include <iomanip>using namespace std;default_random_engine e;uniform_int_distribution<unsigned> u(0, 999);const int MAX = 100;const int MUM = 3;intRADIX_SORT (vector<int> &A, vector<int> &B){int temp = 0; int rate = 1;for (int i = 1; i <= MUM; ++i, rate *= 10){vector<int> C(10, 0);for (int i = 0; i < MAX; ++i){temp = (A[i] / rate) % 10;++C[temp];}for (int j = 1; j < 10; ++j){C[j] += C[j-1];}for (int i = MAX - 1; i >= 0; --i){temp = (A[i] / rate) % 10;B[C[temp]-1] = A[i];}for (int i = 0; i < MAX; ++i){A[i] = B[i];}}return 0;}int main(){vector<int> A;for (int i = 0; i < MAX; ++i){A.push_back(u(e));}vector<int> B = A;RADIX_SORT(A, B);for (int i = 0; i < MAX; ++i){cout << setw(5) << B[i]<< " ";if ((i+1)%10 == 0){cout << endl;}}return 0;}

0 0
原创粉丝点击