Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Arrays;
- import java.util.Scanner;
- public class OrdenacaoDePlacas {
- public static void radix(int[] v, int exp,String[] numerosSplit) {
- int[] count = new int[10];
- for (int i = 0; i < v.length; i++) {
- count[(v[i]/exp)%10]++;
- }
- for (int i = 1; i < count.length; i++) {
- count[i] += count[i- 1];
- }
- int[] resp = new int[v.length];
- for (int i = v.length - 1; i >= 0; i--) {
- resp[count[ (v[i]/exp)%10 ] - 1] = v[i];
- count[ (v[i]/exp)%10 ]--;
- }
- for (int i = 0; i < resp.length; i++) {
- v[i] = resp[i];
- }
- String[] aux = new String[v.length];
- for (int i = 0; i < v.length; i++) {
- aux[i] = achaIndice(v[i],numerosSplit);
- }
- for (int i = 0; i < aux.length; i++) {
- numerosSplit[i] = aux[i];
- }
- }
- private static String achaIndice(int num, String[] numerosSplit) {
- for (int i = 0; i < numerosSplit.length; i++) {
- if(Integer.parseInt(numerosSplit[i].substring(4, 8)) == num) {
- return numerosSplit[i];
- }
- }
- return null;
- }
- private static int achaMaior(int[] v) {
- int maior = v[0];
- for (int i = 0; i < v.length; i++) {
- if(v[i] > maior) {
- maior = v[i];
- }
- }
- return maior;
- }
- public static void main(String[] args) {
- Scanner entrada = new Scanner(System.in);
- String numeros = entrada.nextLine();
- String[] numerosSplit = numeros.split(", ");
- int[] nums = new int[numerosSplit.length];
- for (int i = 0; i < nums.length; i++) {
- nums[i] = Integer.parseInt(numerosSplit[i].substring(4,8));
- }
- int maior = achaMaior(nums);
- for (int exp = 1; maior/exp > 0; exp *= 10) {
- radix(nums,exp,numerosSplit);
- }
- System.out.println(Arrays.toString(nums));
- System.out.println(Arrays.toString(numerosSplit));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement