[Regístrate] [Publicar] [Revistas Digitales]
Inicio
Arte
Costumbres
Hágalo usted Mismo
Tiempo Libre
Cocina
Idiomas
Películas, Cine
Música
Personales
Foto
Religión
Salud
Ciencia
Programas
Antivirus
Desarrollos
Descargas
Manuales
Sistemas Operativos
Programación
Java
Java Script
PHP
Python
SQL
Visual Basic
Tecnología
Viajes
Varios

03.o Ejercicios Resueltos, ordenar con Java - (18060)

Vemos un ejemplo resuelto para ordenar, y aplicando lo que vimos anteriormente usamos un menú en pantalla para que el usuario elija opciones.
Vemos un ejemplo resuelto para ordenar, y aplicando lo que vimos anteriormente usamos un menú en pantalla para que el usuario elija opciones.
Otros
Creado,Modificado
2009-04-10 08:37:26, 2009-06-14 16:54:46
Parte de la Revista:
Aprendiendo Java - Ejemplos resueltos, Ejercicios, prácicas y técnicas de programación con Java #1
Autor,Apodo
Gustavo Guillermo Perez, (madgus) [Mi Blog!]

Ejercicios

Los ejercicios del capítulo III son los últimos antes de proceder con objetos, es recomendable que todo aquello que se ha visto hasta el momento quede perfectamente asimilado ya que en el próximo tema los objetos comenzarán a ser la herramienta principal.

Ejercicio 3.1

Realizar un programa cuyo método principal pida 10 valores numéricos y los asigne a un arreglo, posteriormente imprimir en pantalla el resultado ordenado creciente, y decreciente utilizando el método de la burbuja, computar la cantidad de comparaciones realizadas entre elementos del arreglo y mostrarlas al final como estadística.

  1. package com.compunauta.aprendiendojava;

  2. import java.io.*;

  3. /**

  4. * <p>Título: Aprendiendo Java</p>

  5. * <p>Descripción: Ejemplos del Libro Aprendiendo Java de Compunauta</p>

  6. * <p>Copyright: Copyright (c) 2006 www.compunauta.com</p>

  7. * <p>Empresa: COMPUNAUTA</p>

  8. * @author Gustavo Guillermo Pérez

  9. * @version 2007.10.01

  10. */

  11. public class Cap3_ej1 {

  12. public static int comparaciones=0;

  13. public static void main(String[] args) {

  14. BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

  15. int[] listado=new int[10];

  16. System.out.println("Ingrese 10 números, de a uno presionando ENTER");

  17. for(int i=0;i<10;i++){

  18. listado[i]=leerInt(br);

  19. }

  20. burbuja_mayormenor(listado);

  21. for(int i=0;i<10;i++){

  22. System.out.println("NRO >:["+i+"] "+listado[i]);

  23. }

  24. System.out.println("Comparaciones:"+comparaciones);

  25. burbuja_menormayor(listado);

  26. for(int i=0;i<10;i++){

  27. System.out.println("NRO <:["+i+"] "+listado[i]);

  28. }

  29. }

  30. public static int leerInt(BufferedReader buff){

  31. int lee=0;

  32. boolean error;

  33. do {

  34. error=false;

  35. try {lee = Integer.parseInt(buff.readLine());}

  36. catch (NumberFormatException ex) {

  37. System.out.println("Entrada erronea, repetir:?");

  38. error=true;}

  39. catch (Exception ex){ex.printStackTrace(System.err);}

  40. } while (error);

  41. return lee;

  42. }//final de la función leer

  43. public static void ordenar_burbuja_mayormenor(int[] listado){

  44. int temporal;

  45. for (int j = listado.length - 1; j > 0; j--) {

  46. for (int i = 0; i < j; i++) {

  47. comparaciones++;

  48. if (listado[i] < listado[i + 1]) {

  49. temporal = listado[i + 1];

  50. listado[i + 1] = listado[i];

  51. listado[i] = temporal;

  52. }

  53. }

  54. }

  55. }//final método ordenar burbuja mayor menor

  56. public static void burbuja_mayormenor(int[] listado){

  57. int temporal;

  58. for (int j = 0; j < listado.length - 1; j++) {

  59. for (int i = 0; i < listado.length - 1; i++) {

  60. comparaciones++;

  61. if (listado[i] < listado[i + 1]) {

  62. temporal = listado[i + 1];

  63. listado[i + 1] = listado[i];

  64. listado[i] = temporal;

  65. }

  66. }

  67. }

  68. } //final método ordenar burbuja mayor menor

  69. public static void ordenar_burbuja_menormayor(int[] listado){

  70. int temporal;

  71. for (int j = 0; j < listado.length - 1; j++) {

  72. for (int i = listado.length - 1; i > j; i--) {

  73. comparaciones++;

  74. if (listado[i] < listado[i - 1]) {

  75. temporal = listado[i - 1];

  76. listado[i - 1] = listado[i];

  77. listado[i] = temporal;

  78. }

  79. }

  80. }

  81. }//final método ordenar burbuja menor mayor

  82. public static void burbuja_menormayor(int[] listado){

  83. int temporal;

  84. for (int j = 0; j < listado.length - 1; j++) {

  85. for (int i = listado.length - 1; i > 0; i--) {

  86. comparaciones++;

  87. if (listado[i] < listado[i - 1]) {

  88. temporal = listado[i - 1];

  89. listado[i - 1] = listado[i];

  90. listado[i] = temporal;

  91. }

  92. }

  93. }

  94. } //final método ordenar burbuja menor mayor

  95. }


Línea 1, declaración del paquete, línea 2 importamos java.io para usar los métodos de lectura del teclado, Línea 12 declaración de la clase, línea 13 declaramos la variable estática a la clase comparaciones que es la que usaremos para computar la cantidad de comparaciones para ordenar el arreglo.

El programa en sí comienza en el método principal línea 14, línea 15 se construye un objeto BufferedReader para lectura por teclado, línea 16 se inicializa un arreglo de 10 elementos que será el tamaño del arreglo a trabajar.

Líneas 17 a 20 es la entrada por teclado de los números del arreglo utilizando la función leerInt(BufferedReader) utilizada en ejercicios anteriores.

Línea 22 se invoca a la función que ordena sobre el arreglo listado de números enteros, y en las líneas 23 a 26 se imprime en pantalla la información correspondiente y la estadística de las comparaciones. Línea 33 a 45 Función leer.

Línea 47 – 59 la función ordenar de mayor a menor con la optimización de acotación de índices, y las demás variantes con y sin optimización.

Ejercicio 3.2

Realizar un programa cuyo fin sea el del ejercicio 3.1 pero utilizando el procedimiento quicksort.

Ejercicio 3.3

Integrar con un pequeño menú en pantalla la selección del método que se utilizará para ordenar el arreglo reutilizando el código de los ejercicios anteriores 3.1 y 3.2, pero añadir al cómputo las comparaciones en total incluyendo las de los índices en bucles.



Deja un Comentario

comentby (kiaralaloca) 2010-10-28 09:46:37

Holaa necesito que me ayuden con una tarea dice asi :

1.Crear un programa que me permita ingresar numeros en un arreglo de enteros y que imprima el numero de ceros que se encuentra dentro del arreglo

2.Crear un programa que me permita insertar en un arreglo de enteros e imprimir el resultado de sumar solo los numeros pares

3.escribe el codigo de java del procedimiento invierte , que recibe un arreglo de enteros .el programadebera invertir la secuencia de valores del arreglo

4.Crear 2 vectores de 15 posiciones c/u y en 3 vector Acumular la suma de los 2 primeros vectores.

5.1. Crear un algoritmo que me permita ingresar 5 nombres y ordenarlos alfabeticamente


Copyright (c) Compunauta 2009, Anúncios! Mantenimiento de Equipos, Mayantec.