Skip to content

Instantly share code, notes, and snippets.

@tarlanahad
Last active February 12, 2018 10:39
Show Gist options
  • Save tarlanahad/732ea57b8b70488a5ae756c9385c9502 to your computer and use it in GitHub Desktop.
Save tarlanahad/732ea57b8b70488a5ae756c9385c9502 to your computer and use it in GitHub Desktop.
private static int getMax(int arr[]) {
int max = arr[0];
for (int num : arr) {
if (num > max) max = num;
}
return max;
}
private static void sort(int[] a) {
int i, maxOne, exp = 1, size = a.length;
int[] listOfNumbers = new int[10];
maxOne = getMax(a);
while (maxOne / exp > 0) {
int[] bucket = new int[10];
for (i = 0; i < size; i++) {
int number = a[i];
int digit = (number / exp) % 10;
bucket[digit]++;
}
for (i = 1; i < 10; i++)
bucket[i] += bucket[i - 1];
for (i = size - 1; i >= 0; i--) { //This part of the code is problem
int number = a[i];
int digit = (number / exp) % 10;
bucket[digit] -= 1;
listOfNumbers[bucket[digit]] = a[i];
}
for (i = 0; i < size; i++)
a[i] = listOfNumbers[i];
exp *= 10;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment