Advertisement
Guest User

RadixSort

a guest
Jul 20th, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.53 KB | None | 0 0
  1. //Codigo elaborado para a prova didatica do IFAM
  2.  
  3. import java.io.*;
  4. import java.util.*;
  5.  
  6. public class Radix {
  7.  
  8.    
  9.  
  10.      public static void countingSort(int vetor[], int digitos){
  11.         int C[] = new int[vetor.length];
  12.         int B[] = new int[10];
  13.         Arrays.fill(B,0);
  14.  
  15.         for (int i = 0; i < vetor.length; i++){
  16.             int indice_B = (vetor[i]/digitos) % 10;
  17.             B[indice_B]++;
  18.         }
  19.    
  20.         for (int i = 1; i < 10; i++)
  21.             B[i] += B[i - 1];
  22.  
  23.        
  24.        for (int i = vetor.length - 1; i >= 0; i--){
  25.             int indice_B = (vetor[i]/digitos) % 10;
  26.             int indice_C = B[indice_B] - 1;
  27.             C[indice_C] = vetor[i];
  28.             B[indice_B] -= 1;
  29.        }
  30.  
  31.        for (int i = 0; i < vetor.length; i++)
  32.             vetor[i] = C[i];
  33.     }
  34.  
  35.     public static int getMaiorValor(int vetor[]){
  36.         int maior = vetor[0];
  37.         for (int i = 1; i < vetor.length; i++)
  38.             if (vetor[i] > maior)
  39.                 maior = vetor[i];
  40.         return maior;
  41.     }
  42.    
  43.    
  44.     public static void radixsort(int vetor[]) {
  45.         int maiorNumero = getMaiorValor(vetor);
  46.  
  47.         for (int digitos = 1; maiorNumero/digitos > 0; digitos *= 10)
  48.             countingSort(vetor,digitos);
  49.     }
  50.  
  51.  
  52.  
  53.  
  54.     public static void main (String[] args)
  55.     {
  56.         int vetor[] = {143,12,321,21,290,107};
  57.         radixsort(vetor);
  58.         for(int i = 0; i < vetor.length; i++)
  59.            System.out.print(vetor[i]+" ");
  60.     }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement