[register] [publish] [ezines]
start
art
customs
doityourself
freetime
Kitchen
languages
movies
music
personal
photo
Religion
Health
science
software
antivirus
developments
downloads
manuals
os
programming
java
javascript
php
python
sql
visualbasic
technology
travels
various

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

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.
contact
Created,Modified
2009-04-10 08:37:26, 2009-06-14 16:54:46
Part of Ezine:
Aprendiendo Java - Ejemplos resueltos, Ejercicios, prácicas y técnicas de programación con Java #1
Author,Nick
Gustavo Guillermo Perez, (madgus) [myblog]

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.



leavecomment

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.