Advertisement
Avdluna

aaaaaaa

Nov 14th, 2017
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.68 KB | None | 0 0
  1. import java.util.Arrays;
  2. import java.util.Scanner;
  3.  
  4. public class OrdenacaoDePlacas {
  5.  
  6.     public static void radix(int exp,String[] numerosSplit) {
  7.        
  8.         int[] count = new int[10];
  9.        
  10.         for (int i = 0; i < numerosSplit.length; i++) {
  11.             count[(Integer.parseInt(numerosSplit[i].substring(4, 8))/exp)%10]++;
  12.         }
  13.        
  14.         for (int i = 1; i < count.length; i++) {
  15.             count[i] += count[i- 1];
  16.         }
  17.        
  18.         String[] resp = new String[numerosSplit.length];
  19.        
  20.         for (int i = numerosSplit.length - 1; i >= 0; i--) {
  21.             resp[count[ (Integer.parseInt(numerosSplit[i].substring(4, 8))/exp)%10 ] - 1] = numerosSplit[i];
  22.             count[ (Integer.parseInt(numerosSplit[i].substring(4, 8))/exp)%10 ]--;
  23.         }
  24.        
  25.         for (int i = 0; i < resp.length; i++) {
  26.             numerosSplit[i] = resp[i];
  27.         }  
  28.     }
  29.  
  30.     private static int achaMaior(int[] v) {
  31.         int maior = v[0];
  32.         for (int i = 0; i < v.length; i++) {
  33.             if(v[i] > maior) {
  34.                 maior = v[i];
  35.             }
  36.         }
  37.         return maior;
  38.     }
  39.    
  40.     public static void main(String[] args) {
  41.         Scanner entrada = new Scanner(System.in);
  42.        
  43.         String numeros = entrada.nextLine();
  44.         String[] numerosSplit = numeros.split(",");
  45.        
  46.         if(numerosSplit.length > 0) {
  47.        
  48.         int[] nums = new int[numerosSplit.length];
  49.        
  50.         for (int i = 0; i < nums.length; i++) {
  51.             nums[i] = Integer.parseInt(numerosSplit[i].substring(4,8));
  52.         }
  53.        
  54.         int maior = achaMaior(nums);
  55.        
  56.         for (int exp = 100; maior/exp > 0; exp *= 10) {
  57.             radix(exp,numerosSplit);
  58.         }      
  59.        
  60.         String pprint = "";
  61.        
  62.         for (int i = 0; i < numerosSplit.length; i++) {
  63.             pprint += numerosSplit[i] + ", ";
  64.         }
  65.         String ppprint = pprint.substring(0, pprint.length() - 2);
  66.        
  67.         System.out.println(ppprint);
  68.     }}
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement