Título: No entiendo esta lógica [arreglos] [C] Publicado por: barnix456 en 6 Diciembre 2012, 17:47 pm Hola, estoy aprendieno C y estoy leyendo un libro, ya voy en el apartado de arreglos, y me tome con un ejemplo del ordenamiento de tipo burbuja utilizando arreglos, lo principal del programa es que inicializa un arreglo con datos cualquiera y los ordena de forma ascendente, pero no entiendo realmente el asunto de las comparaciones que hace, se los dejo, espero alguien me explique saludos.
Código
no entiendo como ocurre el ordenamiento, disculpen soy novato... Título: Re: No entiendo esta lógica [arreglos] [C] Publicado por: rir3760 en 6 Diciembre 2012, 18:18 pm Hola, estoy aprendieno C y estoy leyendo un libro [...] En la pagina cortesía de Wikipedia: Bubble sort Analysis (http://en.wikipedia.org/wiki/Bubble_sort#Analysis) hay una pequeña animación que muestra el algoritmo en funcionamiento, paso a paso.no entiendo como ocurre el ordenamiento, disculpen soy novato... Otra pagina de interés, en mi opinión la que explica (en ingles) de forma mas sencilla ciertos algoritmos es Animations to Assist Learning Some Key Computer Science Topics (http://courses.cs.vt.edu/~csonline/index.html), primera sección "Algorithms". Un saludo Título: Re: No entiendo esta lógica [arreglos] [C] Publicado por: barnix456 en 6 Diciembre 2012, 18:23 pm hola gracias, ahora lo checo.
Título: Re: No entiendo esta lógica [arreglos] [C] Publicado por: Adrisim en 7 Diciembre 2012, 13:18 pm Vale, te explicaré qué hace exactamente el Método de la Burbuja.
El Método de la Burbuja consiste en hacer comparaciones entre los elementos del arreglo. Si el primer elemento es mayor al siguiente, entonces, lo intercambiará, sino, lo dejará como está. La Burbuja, hará sólamente ''n-1'' pasadas, o comparaciones, puesto que si hiciera la cantidad de comparaciones del tamaño del arreglo, tomaría elementos basura que no están declarados dentro de las dimensiones del arreglo. ¿Esto por qué?. Porque el Método va comparando elementos de dos en dos. Como primer comentario, te puedo decir que has utilizado variables de más; es decir, innecesarias. Con la varible entera ''i'' que declaraste, hubiese sido suficiente para recorrer los índices del arreglo en cada FOR. Pero entiendo por qué lo hiciste, para no confundirte. Ya después te acostumbrarás a no utilizar tantas variables. En fin. Veo que has iniciado tu arreglo. Entonces: Código: // Tu variable 'pass' en el FOR es lo que recorrerá el índica entre corchetes de cada elemento del arreglo. Espero que te haya servido. Si no, puedes contactarme o checar alguna otra fuente para entenderle mejor. Suerte. Título: Re: No entiendo esta lógica [arreglos] [C] Publicado por: rir3760 en 7 Diciembre 2012, 16:50 pm Como primer comentario, te puedo decir que has utilizado variables de más; es decir, innecesarias. Con la varible entera ''i'' que declaraste, hubiese sido suficiente para recorrer los índices del arreglo en cada FOR. Pero entiendo por qué lo hiciste, para no confundirte. Ya después te acostumbrarás a no utilizar tantas variables. El numero de variables para el algoritmo en el programa de barnix456 es el mínimo: una para controlar el bucle externo y otra para el interno.Otra opción para estudiar el algoritmo es revisar el código fuente sobre este en los foros, solo debe utilizar el motor de búsqueda, por ejemplo uno de los últimos temas donde se trata BubbleSort es Problemas al intentar hacer mas eficiente un algoritmo de ordenacion (http://foro.elhacker.net/empty-t375966.0.html). Un saludo Título: Re: No entiendo esta lógica [arreglos] [C] Publicado por: Adrisim en 7 Diciembre 2012, 21:56 pm El numero de variables para el algoritmo en el programa de barnix456 es el mínimo: una para controlar el bucle externo y otra para el interno. Tienes razón. Cometí un error fatal. Por poco le hice creer al chico que podría hacer más con menos, cuando ya había llenado perfectamente, el perfil de un programa funcional. Discúlpenme ambos. Título: Re: No entiendo esta lógica [arreglos] [C] Publicado por: barnix456 en 10 Diciembre 2012, 23:56 pm Hola Adrisim muy muy buena tu explicacion, parece que le he entendido, pero como dice rir3760 lo que tengo que hacer es ver mas ejemplos para poder entender mas el metodo burbuja, gracias por sus respuestas me han ayudado muchisimo, gracias.
|