Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- long long radixSort(int*& arr, int n)
- {
- int digit = 0;
- RadixUnion* temp = new RadixUnion[n];
- while (digit < 4) {
- for (int i = 0; i < n; i++) {
- temp[i].num = (unsigned int)arr[i];
- }
- int* c = new int[256];
- for (int i = 0; i < 256; i++) {
- c[i] = 0;
- }
- for (int i = 0; i < n; i++) {
- c[temp[i].set[digit]]++;
- }
- long long k = 0, j;
- for (int i = 0; i < 256; i++) {
- j = c[i];
- c[i] = k;
- k += j;
- }
- for (int i = 0; i < n; i++) {
- int tempIndex = temp[i].set[digit];
- arr[c[tempIndex]] = temp[i].num;
- c[tempIndex]++;
- }
- digit++;
- delete[] c;
- }
- delete[] temp;
- return count;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement