Advertisement
Avdluna

testeeeeeeee

Nov 14th, 2017
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.80 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[] v, int exp,String[] numerosSplit) {
  7.        
  8.         int[] count = new int[10];
  9.        
  10.         for (int i = 0; i < v.length; i++) {
  11.             count[(v[i]/exp)%10]++;
  12.         }
  13.        
  14.         for (int i = 1; i < count.length; i++) {
  15.             count[i] += count[i- 1];
  16.         }
  17.        
  18.         int[] resp = new int[v.length];
  19.        
  20.         for (int i = v.length - 1; i >= 0; i--) {
  21.             resp[count[ (v[i]/exp)%10 ] - 1] = v[i];
  22.             count[ (v[i]/exp)%10 ]--;
  23.         }
  24.        
  25.         for (int i = 0; i < resp.length; i++) {
  26.             v[i] = resp[i];
  27.         }  
  28.        
  29.         String[] aux = new String[v.length];
  30.        
  31.         for (int i = 0; i < v.length; i++) {
  32.             aux[i] = achaIndice(v[i],numerosSplit);
  33.         }
  34.        
  35.         for (int i = 0; i < aux.length; i++) {
  36.             numerosSplit[i] = aux[i];
  37.         }
  38.     }
  39.  
  40.     private static String achaIndice(int num, String[] numerosSplit) {
  41.         for (int i = 0; i < numerosSplit.length; i++) {
  42.             if(Integer.parseInt(numerosSplit[i].substring(4, 8)) == num) {
  43.                 return numerosSplit[i];
  44.             }
  45.         }
  46.         return null;
  47.     }
  48.  
  49.     private static int achaMaior(int[] v) {
  50.         int maior = v[0];
  51.         for (int i = 0; i < v.length; i++) {
  52.             if(v[i] > maior) {
  53.                 maior = v[i];
  54.             }
  55.         }
  56.         return maior;
  57.     }
  58.    
  59.     public static void main(String[] args) {
  60.         Scanner entrada = new Scanner(System.in);
  61.        
  62.         String numeros = entrada.nextLine();
  63.         String[] numerosSplit = numeros.split(", ");
  64.         int[] nums = new int[numerosSplit.length];
  65.        
  66.         for (int i = 0; i < nums.length; i++) {
  67.             nums[i] = Integer.parseInt(numerosSplit[i].substring(4,8));
  68.         }
  69.        
  70.         int maior = achaMaior(nums);
  71.        
  72.         for (int exp = 1; maior/exp > 0; exp *= 10) {
  73.             radix(nums,exp,numerosSplit);
  74.         }
  75.        
  76.        
  77.        
  78.         System.out.println(Arrays.toString(nums));
  79.         System.out.println(Arrays.toString(numerosSplit));
  80.     }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement