Solución al problema 11462 - Age Sort de UVA (Código en java) | Java solution

Esta es una propuesta de solución para el ejercicio Age Sort de Uva.

Tabla de contenido
  1. Enunciado del ejercicio Age Sort
  2. Implementacion en Java de la solución del problema 11462 - Age Sort.

Enunciado del ejercicio Age Sort

Le dan las edades (en años) de todas las personas de un país con al menos 1 año de edad. Usted sabe que ningún individuo en ese país vive por 100 o más años. Ahora, se te da una tarea muy sencilla de clasificar todas las edades en orden ascendente.

Implementacion en Java de la solución del problema 11462 - Age Sort.

Nota: Esta solución fue implementada con un método de ordenamiento llamado Counting Sort (Ver implementacion en java), Aunque también se puede solucionar con el método de API sort.

Aqui el código fuente en Java. Recordemos que debemos crear una clase llamada Main.

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {
public static int[] sort(int[] A) {
int n = A.length-1;
int k = A[0];
for (int i = 1; i <= n; i++) {
if (A[i] > k) {
k = A[i];
}
}
int[] C = new int[k + 1];

for (int i = 0; i <= k; i++) {
C[i] = 0;
}
for (int i = 0; i <= n; i++) {
C[A[i]] = C[A[i]] + 1;
}
for (int i = 1; i <= k; i++) {
C[i] = C[i] + C[i - 1];
}
int[] B = new int[n+1];
for (int i = n ; i >= 0; i--) {
C[A[i]] = C[A[i]] - 1;
B[C[A[i]]] = A[i];
}
return B;
}

public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
while (n!=0){
int temp[] = new int [n];
String tempStrig []= br.readLine().split(" ");
for (int i = 0; i < tempStrig.length; i++) {
temp[i]=Integer.parseInt(tempStrig[i]);
}
int temp2 []= sort(temp);
for (int i = 0; i < temp2.length-1; i++) {
out.write(temp2[i]+" ");
}
out.write(temp2[temp2.length-1]+"n");
n=Integer.parseInt(br.readLine());
}
out.flush();
}
}

Este ejercicio tiene un tiempo limite de 5 segundos para su máxima entrada.

Recomendado:   Cómo quitar el autor de las entradas de Blogger

Espero que este código fuente te sea de gran utilidad. No olvides calificar este articulo.

Si quieres conocer otros artículos parecidos a Solución al problema 11462 - Age Sort de UVA (Código en java) | Java solution puedes visitar la categoría Java.

Entradas relacionadas

Subir