基数排序

来源:互联网 发布:盗版玩家 知乎 编辑:程序博客网 时间:2024/06/05 03:24

基数排序思想及分析:



void Radix_sort(int a[], int size ){           int *count = new int[10];           int *bucket = new int[size];           int radix = 1;           for (int i = 1; i<=get_bit(a,10); i++)          {                   memset(count, 0, sizeof(int )* 10);                   memset(bucket, 0, sizeof(int )*size);                    for (int j = 0; j < size; j++)                   {                             count[ a[j] / radix % 10]++;                   }                   bucket[0] = 0;                    for (int i = 1; i < size; i++)                   {                             bucket[i] = bucket[i - 1] + count[i - 1];                   }                    int *temp = new int[size];                    for (int i = 0; i < size; i++)                   {                              int index = a [i] / radix % 10;                             temp[bucket[index]] = a[i];                             bucket[index]++;                   }                    for (int i = 0; i < size; i++)                   {                              a[i] = temp[i];                   }                   radix *= 10;                    delete[]temp;          }}


0 0