The::Beastieux

Sangre de Bestia + Corazón de Pingüino | Un blog acerca de Linux, *BSD, Open Source, Software Libre, Programación …

Métodos de ordenamiento hecho en java


ArregloUni.java
public class ArregloUni{
	protected static int MAX=20;
	protected int n;
	protected int []a=new int[MAX];

	public int cantidad(){
		return n;
	}

	public void ingreso(){
		int i,cant;

		do{
			System.out.print("Cuantos elementos : ");
			cant=Leer.datoInt();
		} while(cant<1 || cant>MAX);
		for(i=0;cant>i;i++){
			System.out.print("elemento "+i+":");
			a[i]=Leer.datoInt();
		}
		n=cant;
	}

	public void reporte(){
		int i;

		if(n>0){
			for(i=0;n>i;i++) System.out.print(a[i]+"\t");
			System.out.println("\n");
		}
		else System.out.println("Esta Vacio");
	}

	public int localizar(int x){
		int i=0;
		if(n>0){
			while (i<n-1 && x!=a[i]) i++;
			if (x==a[i]) return i; // Esta en posición i
			else return -1; // No se encuentra
		}
		else return -2; // Esta vacia
	}

	public void insertar(int x, int pos){
		int i;

		if ((n>0) && (n)!=MAX){
			for(i=n-1;pos<=i;i--) a[i+1]=a[i];
			a[pos]=x;
			n=n+1;
		}
		else if (n>0) System.out.println("Desbordamiento");
		else System.out.println("Esta vacio");
	}

	public void suprimir(int pos){
		int i;

		if(n>0){
			for(i=pos;n-1>i;i++) a[i]=a[i+1];
			n=n-1;
		}
		else System.out.println("Esta vacio");
	}
}
DemoOrdenamiento.java
public class DemoOrdenamiento
{
	public static void main(String []args)
	{
		Ordenamiento datos=new Ordenamiento();
		int sw,opcion;

		datos.ingreso();
		sw=1;
		do{

			System.out.println("0. Salir");
			System.out.println("1. Burbuja Derecha Izquierda");
			System.out.println("2. Burbuja de derecha a Izquierda");
			System.out.println("3. Inserción Directa");
			System.out.println("4. Selección Directa");
			System.out.println("5. Metodo Shell");
			System.out.println("6. Ordenamiento rápido");
			System.out.print("Opcion ==> ");
			opcion=Leer.datoInt();
			if(opcion>0)
			{
				System.out.println("Arreglo antes de ordenar");
				datos.reporte();
			}

			switch(opcion)
			{
				case 0: sw=0;break;
				case 1: datos.burbuja_der_izq();break;
				case 2: datos.burbuja_izq_der();break;
				case 3: datos.baraja();break;
				case 4: datos.seleccion_directa();break;
				case 5: datos.shell();break;
				case 6: datos.quicksort(datos.a,0,datos.n-1);break;
			}

			if(opcion>0)
			{
				System.out.println("Arreglo despues de ordenar");
				datos.reporte();
			}

		}while(sw==1);
	}
}
Leer.java
import java.io.*;
public class Leer{
	public static String dato(){
		String sdato = "";
		try{
		// Definir un flujo de caracteres de entrada: flujoE
			InputStreamReader isr =
				new InputStreamReader(System.in);
			BufferedReader flujoE=
				new BufferedReader(isr);
		// Leer. La entrada finaliza al pulsar la tecla Entrar
			sdato = flujoE.readLine();
		}
		catch(IOException e){
			System.err.println("Error: " + e.getMessage());
		}
		return sdato; // devolver el dato tecleado
	}

	public static short datoShort(){
		try{
			return Short.parseShort(dato());
		}
		catch(NumberFormatException e){
			// valor más pequeño
			return Short.MIN_VALUE;
		}
	}

	public static int datoInt(){
		try{
			return Integer.parseInt(dato());
		}
		catch(NumberFormatException e){
			// valor más pequeño
			return Integer.MIN_VALUE;
		}
	}

	public static long datoLong(){
		try{
			return Long.parseLong(dato());
		}
		catch(NumberFormatException e){
			// valor más pequeño
			return Long.MIN_VALUE;
		}
	}

	public static float datoFloat(){
		try{
			Float f = new Float(dato());
			return f.floatValue();
		}
		catch(NumberFormatException e){
			// No es un Número; valor float.
			return Float.NaN;
	}
	}

	public static double datoDouble(){
		try{
			Double d = new Double(dato());
			return d.doubleValue();
		}
		catch(NumberFormatException e){
			// No es un Número; valor double.
			return Double.NaN;
		}
	}

	public static String datoString(){
		return dato();
	}

	public static char datoChar(){
		int c=0;
		try{
			InputStreamReader isr =
				new InputStreamReader(System.in);
			BufferedReader flujoE=
				new BufferedReader(isr);
			c=flujoE.read();
			char car;
			car=(char) c;
			return car;
		}
		catch(IOException e){
			return '\0';
		}
	}
}
Ordenamiento.java
public class Ordenamiento extends ArregloUni
{
	public void burbuja_der_izq()
	{int i,j;
		for(i=1;i<=n-1;i++)
		{System.out.println("Recorrido"+i);//sirve para q en cada recorrido lo valla imprimiendo
			for(j=n-1;j>=i;j--)
				{if(a[j-1]>a[j])
				cambio(a,j-1,j);
				reporte();// se pone para q cada recorrido valla reportando
				}
			}
	}
	public void burbuja_izq_der()
	{int i,j;
		for(i=n-2;i>=0;i--)
		{System.out.println("Recorrido"+-((i-n)+1));
			for(j=0;j<=i;j++)
				{
					if(a[j]>a[j+1])
				cambio(a,j,j+1);
				reporte();
				}
			}

			}

	public void cambio(int[]a,int pos1,int pos2)
	{
		int t;
		t=a[pos1];
		a[pos1]=a[pos2];
		a[pos2]=t;
	}

	public void baraja()
	{
		int i,j,aux;
		for(i=1;i<=n-1;i++)
		{
			aux=a[i];
			j=i-1;
			while(a[j]>aux && j>0)
			{
				a[j+1]=a[j];
				j--;
			}

			if(a[j]>aux)
			{
				a[j+1]=a[j];
				a[j]=aux;
			}
			else
				a[j+1]=aux;
		}
	}

	public void seleccion_directa()
	{
		int i,j,k,aux;
		for(i=0;i<=n-2;i++)
		{
			k=1;
			aux=a[i];
			for(j=i+1;j<=n-1;j++)
				if(a[j]<aux)
				{
					k=j;
					k=a[j];
				}

				a[k]=a[i];
				a[i]=aux;
		}
	}

	public void shell()
	{
		int d,i,sw;
		d=n;
		do{
			d=d/2;
			do{
				sw=0;
				i=-1;
				do{
					i++;
					if(a[i]>a[i+d])
					{
						cambio(a,i,i+d);
						sw=1;
					}
				}while(i+d!=n-1);
			}while(sw!=0);
		}while(d!=1);
	}

	public void quicksort(int data[],int inf,int sup)
	{
		int left,rigth;
		double half;

		left=inf;
		rigth=sup;
		half=data[(left+rigth)/2];
		while(left<rigth)
		{
			while(data[left]<half && left<sup)
				left++;
			while(half<data[rigth] && rigth>inf)
				rigth--;

			if(inf<rigth) quicksort(data,inf,rigth);
			if(left<sup) quicksort(data,left,sup);
		}
	}

}

Estos métodos de ordenamiento fueron implementados en mi curso de Estructura de datos y algoritmos

La clase principal es DemoOrdenamiento.java

Los métodos de ordenamiento que incluyen son:

Burbuja Derecha – Izquierda
Burbuja Izquierda – Derecha
Inserción Directa
Selección Directa
Método Shell
Ordenamiento rápido

Todos estas clases deberìan estar incluidos en el mismo proyecto o en la misma carpeta desde donde se manda la orden al compilador, yo les he probado compilando con gcj y jdk en linux. En el curso usamos una IDE el JCreator sobre windows, espero les sirva.


También te puede Interesar:

Métodos de Ordenamiento en C++

About these ads

59 Respuestas a “Métodos de ordenamiento hecho en java

  1. Pamela Estigarribia abril 2, 2014 en 12:50 pm

    Quiero que me ayudes con un ejercicio de ordenamiento de un vector por el metodo lineal. en java del lenguaje NETBEANS….

  2. Anónimo marzo 5, 2014 en 11:06 am

    Ola ke asee

  3. Zain Equihua Zamora enero 12, 2014 en 9:46 pm

    Amigos buenas noches, ando en busca de este método de ordenamiento en Java(“Natural Merge Sort”), si alguien lo tuviera y me hiciera el favor de compartirme lo se lo agradecería mucho.

  4. Ivett diciembre 4, 2013 en 5:12 pm

    Etoo… oye de pura casualidad no tienes algun ejemplo para java del metodo de torneo esk n encuentro ningun ejemplo

  5. javier marzo 31, 2013 en 12:11 am

    en la primera clase, en el metodo localizar, empiezas desde n=0 y terminas en n-2, el termino n-1 no es comparado por lo que te faltaria evaluar un campo mas.

  6. Danya diciembre 11, 2012 en 10:54 am

    Te amo!!! tenia dos semanas buscando esto x33, y lo tengo que entregar hoy en mi clase de estructura xD

  7. Danya diciembre 11, 2012 en 10:53 am

    TE AMO LA NETA!!! =**** Tenia dos semanas buscando esto, lo tengo que entregar hoy para mi clase de estructura XDD

  8. carlos noviembre 20, 2012 en 2:22 pm

    una pregunta alguien tiene una idea de como usar todos estos metodos en un solo programa??

  9. jesus daniel marzo 20, 2012 en 7:31 pm

    puto

  10. peblo torres noviembre 27, 2011 en 1:47 pm

    esta genieal yy me a alludado mucho grax espero que sigas suviendo codigo grax

  11. KAROL noviembre 24, 2011 en 3:07 pm

    mE GUSTARIA QUE PUBLIQUEN UNA PROGRAMA UTILIZANDO LISTAS Y NO ARREGLOS EN JAVA MEJOR DICHO ORDENAMIENTO DE LISTAS POR METODO DE INSERCION, BURBUJA Y SELECCION

  12. Anónimo noviembre 19, 2011 en 8:00 pm

    Oye! amigo ya tiene tiempo que subistes estos codigos. Pero a mi me sirvio. Gracias =)

  13. Axxita noviembre 11, 2011 en 2:42 pm

    ushhh ^^ nu sabes de la k me salbaste , te gradesco un monton por tu aporte , me sirvio de muchooo grax , cdt^^-

  14. Alberto octubre 27, 2011 en 5:06 pm

    Muy buen código.
    Me gustaría que me pasaras los estilos que usas para meter el código fuente…si es posible claro, también uso wordpress y estoy buscando el estilo adecuado. El que usas me gusta.
    Gracias

  15. Rafael octubre 7, 2011 en 4:47 pm

    Muchas gracias :) llevo estructura de Datos y ésto sin duda me ayudará

  16. esteban octubre 5, 2011 en 10:43 pm

    uy esto esta excelente, no tendras por ahi los metodos de los algoritmos de busqeda secuencial y binaria ya integrados en este proyecto??

  17. kevienfox septiembre 20, 2011 en 11:33 am

    yo tambien estoy llevando el curso Estructura de Datos y Algoritmos me va a servir estos ejemplos se agradece muchas gracias!! :D
    Salu2

  18. martin junio 15, 2011 en 10:51 am

    no me quiere salir un ejercicio es de polimorfismo se me pone un poco complicado no se si me puedes dar algunos ejemplos sobre polimorfismo si fueras tan amable

  19. Anónimo junio 2, 2011 en 12:08 am

    public void seleccion_directa()
    {
    int i,j,k,aux;
    for(i=0;i<=n-2;i++)
    {
    k=1;
    aux=a[i];
    for(j=i+1;j<=n-1;j++)
    if(a[j]<aux)
    {
    k=j;
    k=a[j];
    }
    a[k]=a[i];
    a[i]=aux;
    }
    }
    Oie disculpa me puedes decir q significan las variables en este metodo de ordenamiento??

  20. neutron mayo 22, 2011 en 5:58 pm

    Tengo un problema. cuando selecciono por ejemplo [1] en el teclado me manda nuevamente el menu de opciones y asi sucesivamente se cicla en el menu,,alguien tiene la solucion?? xfis. gracias un saludo

    • BeAsTiEuX mayo 23, 2011 en 12:27 pm

      El problema que tienes es con este ejemplo?, o con tu propio código?

      • Ivan octubre 4, 2012 en 11:02 am

        es con este ejemplo
        cada que selecciono segun una opcion regresa al menu por que es???

  21. Jairox enero 16, 2011 en 8:40 pm

    amigos aqui dejo un ejemplo de metodos de ordenamiento en java ojala les sirva

    link de descarga

    http://depositfiles.com/files/4h29nqdp7

    o bien

    http://hotfile.com/dl/97307976/a843918/metodos_de_ordenamientos.rar.html

    • BeAsTiEuX enero 17, 2011 en 4:16 am

      Todo aporte es bienvenido, gracias…

  22. Rodrigo enero 11, 2011 en 3:42 pm

    estoy buscan un programa, q me de todos los metodos de ordenamiento, un random, q imprima 100 digitos, utilizando:
    burbuja
    shellshort
    radix
    quickshort
    mescla natural
    hash
    por favor!! gracias

    • Jairox enero 16, 2011 en 8:43 pm

      tal vez te sirva el ejemplo que deje no tiene el random pero puedes implementarlo en el programa

  23. Br octubre 13, 2010 en 2:39 pm

    hola, hoye me podrias ayudar esk necesito hacer el ordenamiento burbuja en java pero con hilos, pero no tengo la menor idea de como hacerlo. Me salvarias la vida. Gracias

  24. --- --- ------ julio 22, 2010 en 7:59 pm

    hola:

    necesito ayuda, tengo que utilizar el metodo burbuja en java para ordenar solo las filas de una matriz n x n, la dimencion debe ser introducida desde teclado y tambien los datos numericos de la matriz y no tengo ni idea de como hacer esta tarea.
    AYUDA, AYUDA POR FAVOR

  25. beki ruiz mayo 18, 2010 en 11:39 am

    oye sera k me puedas ayudar con ejemplos de metodos de ordenamiento:
    por emnumeracion
    por insercion
    por intercambio
    por seleccion
    por combinacion
    te juro k me salvarias la vida XD

  26. Edwin Mendoza octubre 26, 2009 en 5:33 pm

    Esta muy bien pero creo que con un poco de practica se pueden mejorar, ya que tambien hay que tomar en cuenta los recursos de memoria que consumen

  27. Jorge octubre 1, 2009 en 9:21 pm

    Una pregunta me podrian ayudar conn lo referido a radix sort su definicion como y ye ne casos se aplicas su programacion en codigo java con ejemplos si pueden envien la infromacion a etse correo Darck_tlv_27@hotmail.com

  28. yury octubre 1, 2009 en 5:51 pm

    nesesito algo para leer las interfas de java con jaws 000000000000000000000000000000000000000000000000000000000000000000

  29. CHEJOx septiembre 23, 2009 en 9:17 pm

    viejo sera ke vos me podes ayudar con unos metodos ke nos puso el profe…es ke estoy colgado en algunos…gracias

  30. Nelson septiembre 22, 2009 en 1:04 pm

    Necesito, que de llos metodos de ordenamiento rapido y radix lo que esta a continuación
    • Características fundamentales.
    • Ventajas y limitaciones.
    • Escenarios de uso más adecuados.
    • Ejemplos de utilización.
    • Análisis de complejidad del algoritmo correspondiente.
    saludos

  31. Nelson septiembre 22, 2009 en 1:04 pm

    Necesito, que de llos metodos de ordenamiento rapido y radix lo que esta a continuación
    • Características fundamentales.
    • Ventajas y limitaciones.
    • Escenarios de uso más adecuados.
    • Ejemplos de utilización.
    • Análisis de complejidad del algoritmo correspondiente.

    • Anónimo octubre 1, 2009 en 5:44 pm

      Nelson aslo tu ,soi yury jajjajjaja !!!

  32. Bocalon septiembre 20, 2009 en 10:24 pm

    Gracias, Bro me asignaron esta clase y no soy bueno en java.

  33. diego septiembre 18, 2009 en 9:04 am

    hola necesito ayuda con este programa es

    dado un array de 7 posiciones tipo int llenarlo desde teclado. Intercambiar el contenido del array.

    este ejercicio es un vector y debe realizarce por el metodo de la burbuja

  34. Sky julio 27, 2009 en 7:29 pm

    compa me sirvio mucho tu programa pero el quicksort me da error asi tal cual como esta sin modificarle nada.. y realmente no lo se modificar porq no lo entiendo bien a ver si me podrias ayudar o alguien que sepa gracias de igual forma

  35. Iuga mayo 26, 2009 en 1:59 pm

    Gracias, me fue de mucha ayuda, sobre todo el quicksort

  36. Don Torec mayo 12, 2009 en 10:18 pm

    HI, fue de mucha ayuda pero tengo un problema con el caso 4 (seleccion directa), cuando meto los datos este me cambia uno de los numeros y no me los ordena….. me ayudan????

  37. beto mayo 11, 2009 en 8:41 pm

    q onda ps la vdd esta chido el codigo y por cierto me ayudo en un programa parecido que me djaron

    • Anónimo junio 6, 2012 en 12:04 pm

      camara no hay show

  38. Pablo Gabriel mayo 11, 2009 en 10:26 am

    necesito el metodo de ordenamiento shell en java pero para arreglos porfa si lo tienes enviame

  39. Jd marzo 23, 2009 en 4:08 pm

    un pequeño problema jeje no esta lo que busco, si alguin lo sabe lo puede publicar porfavor es sobre el metodo de la burbuja jeje grasias es ej java

  40. GERMAN marzo 18, 2009 en 1:58 pm

    no envien tonterias pongase a trabajar

  41. Anónimo febrero 2, 2009 en 10:20 am

    estoy empezando en esto como hago para hacer un ordenamiento en c++ es de derecha izquierdA Y IZQUIERDA A DERECHA

    • yury octubre 1, 2009 en 6:49 pm

      bajel codigo ate que aparese enn esta misma pagina y esta listo

  42. sAfOrAs noviembre 30, 2008 en 12:32 am

    jhoset:
    creo que está claro lo que publico en este post, son métodos de ordenamiendo en java!!!
    Descarga los 4 primeros códigos, ellos funcionan juntos…

    Puedes ejecutarlo desde la IDE que quieras, incluyendo netbeans. Los metodos que contiene son:

    Burbuja Derecha – Izquierda
    Burbuja Izquierda – Derecha
    Inserción Directa
    Selección Directa
    Método Shell
    Ordenamiento rápido

    Saludos y suerte!!

  43. jhoset noviembre 28, 2008 en 10:25 pm

    hola expetos, antes que nada les doy las gracias por prestar mi antencion, quisiera saber si alguien me pueda brindar algunos metodos de ordenamiento en java netbeans, aparte de la burbuja.. ante mano se los agradesco por su colaboracion

  44. Anónimo noviembre 5, 2008 en 1:35 pm

    NECESITO TODOS LOS METODOS DE ORDENAMIENTO EN JAVA

  45. dreacko octubre 16, 2008 en 10:34 am

    me tiro este error el principal estoy trabajando con el texpad bajo windows xp

    C:\Documents and Settings\laboratorio\Escritorio\metodos de ordenamiento\DemoOrdenamiento.java:20: cannot find symbol
    symbol : variable leer
    location: class DemoOrdenamiento
    opcion=leer.datoInt();
    ^
    .\ArregloUni.java:15: cannot find symbol
    symbol : variable Leer
    location: class ArregloUni
    cant=Leer.datoInt();
    ^
    .\ArregloUni.java:19: cannot find symbol
    symbol : variable Leer
    location: class ArregloUni
    a[i]=Leer.datoInt();
    ^
    3 errors

    Tool completed with exit code 1

  46. sAfOrAs septiembre 2, 2008 en 3:58 pm

    mm, hola Engel, pensé enviarte algunas url’s, por falta de tiempo, pero no dejaste tu correo. En esta página encontrarás una explicación sobre radix.

  47. ENGEL septiembre 1, 2008 en 8:39 pm

    oiie saforas me podias ayudar aser un programa con apuntadores con el metodo de ordenamiento radix sort
    porffa
    eske no logro entenderle sale grax

  48. Ramiro agosto 18, 2008 en 12:55 pm

    man sera que tienes entre tus codigos como ordenar una lista, en java?

  49. sAfOrAs julio 13, 2008 en 2:36 pm

    hehe, me agrada la idea de ayudar a quienes tienen interés, cualquier duda no dudes en escribir o suscribirte a la lista de somoscodigolibre :), saludos!!

  50. zenaida julio 10, 2008 en 9:18 am

    esta chio los programas deben de assr amenudo todo para aSI NOSOTROS ORIENTARNOS MAS EN PROGRAMACION

  51. wilber junio 24, 2008 en 4:34 pm

    jejej esta chido los codigosde java eres bueno….jejjej

  52. Pingback:Métodos de ordenamiento hecho en C++ « Saforas’$ the::beastieux

No te quedes callado. Pregunta, Comenta, Comparte, Sígueme, Suscríbete, Déjame tu opinión... Soy Beastieux Zeroo...

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 545 seguidores

A %d blogueros les gusta esto: