import java.util.Arrays;
public class {
public static int arr[] = {3,44,38,5,47,15,36,26,27,2,46,4,19,50,48};
private static void Sort() {
int n = 1;
int k = 0;
int len = arr.length;
int[][] quer = new int[10][len];
int[] count = new int[len];
int max=arr[0];
for (int i = 0; i < arr.length; i++) {
max = arr[i]>max?arr[i]:max;
}
while (n < max*10) {
for (int i=0; i<arr.length;i++)
{
int tail= (arr[i]/ n) % 10;
quer[tail][count[tail]] =arr[i];
count[tail]++;
}
for (int i = 0; i < len; i++)
{
if (count[i] != 0)
{
for (int j = 0; j < count[i]; j++) {
arr[k] = quer[i][j];
k++;
}
}
count[i] = 0;
}
n *= 10;
k = 0;
}
}
public static void main(String[] args) {
Sort();
System.out.println(Arrays.toString(arr));
}
}