+ 2

Can u help me. Plis give me an example abt radix sort and merge sort program

26th Oct 2016, 10:29 AM
Farhan Sindy
Farhan Sindy - avatar
2 Réponses
+ 13
void radix_sort(int a[], int length) { queue<int> bin[10]; int i; for (int radix=1; radix <= 1e+9; radix *= 10) { for (i = 0; i < length; i++) bin[a[i] / radix % 10].push(a[i]); i = 0; for (int next = 0; next < 10; next++) while (!bin[next].empty()) { a[i++] = bin[next].front(); bin[next].pop(); } }}
11th Nov 2016, 7:00 AM
Nelli
Nelli - avatar
+ 11
void merge_sort(int a[], int length) { if (length > 1) { merge_sort(a, length/2); merge_sort(a + length/2, length - length/2); int *sorted = new int[length]; int left = 0, right = length / 2; int index = 0, bytes = sizeof(a[0]); while (left < length / 2 && right < length) sorted[index++] = a[left] < a[right] ? a[left++] : a[right++]; if (left == length / 2) memcpy(sorted + index, a + right, (length - right) * bytes); else memcpy(sorted + index, a + left, (length / 2 - left) * bytes); memcpy(a, sorted, length * bytes); delete [] sorted;}}
11th Nov 2016, 6:59 AM
Nelli
Nelli - avatar