Ir al contenido principal

Programación: Ordenamiento por burbuja

Antes de preguntarnos ¿Qué demonios es un ordenamiento por burbuja? sería más apropiado preguntarnos ¿qué es un ordenamiento?, y así como el nombre lo sugiere, es un método que ordena una lista de elementos de menor a mayor o de mayor a menor, depende nuestro problema.

Aquí utilizamos ciclos, condiciones y arreglos, por ello la importancia de las definiciones que vimos al principio del blog.

Ahora pues, llendo directo al meollo del asunto. Tenemos una lista de elementos, digamos que 10, pero desordenados. Lo que necesitamos es ordenarlos de menor a mayor.

Hay diferentes formas de ordenamiento, en el caso de la burbuja se comparan los elementos uno a uno. El primero con los demás y si hay un elemento menor al primero se intercambian. Después compara el segundo elemento con los demás y si hay uno que sea menor los intercambia. Así para todos los elementos.


Como pueden ver en el código usamos un ciclo for anidado, esto quiere decir un ciclo for dentro de otro ciclo for. El primero sirve para seleccionar el elemento el cual vamos a comparar. el segundo for sirve para recorrer la lista de elementos contra la cual vamos a comparar nuestro elemento. Una vez recorrida toda la lista cambia el elemento del primer for.

Simple el entendimiento de burbuja, en cambio aunque funciona no se recomienda para un numero grande de elementos por la siguiente cuestión:

En nuestro ejemplo tenemos una lista de 10 elementos, eso quiere decir que vamos a comparar nuestros elementos (10) contra los otros que le siguen en la lista. Como resultado el numero de veces que se repita el ciclo depende del número de elementos, imaginemos que tenemos una lista de 500 números, ¿ya no parece muy efectivo, verdad? Sin embargo existen otros métodos de ordenamiento que iremos viendo con el tiempo. No se olviden de compartir y comentar (:

Comentarios

Entradas populares de este blog

Listas en java

Si hablamos de la implementación de listas en java, podemos referirnos a diferentes instancias como un Arraylist, linkedList, Vector o Stack. Cada uno de estos con sus propiedades puede resultar más útil para cada caso. Enfoquémonos en el primero: ArrayList Crea una lista vacía con una capacidad inicial de 10 (va creciendo conforme se almacenan elementos). Recordando cómo funcionan los arreglos estáticos (int array [n]) podemos eliminar el valor de una posición, pero no podemos eliminar la posición en si. Es decir, si tenemos un arreglo de tamaño 10 y solo ocupamos 4 espacios, los otros 6, aunque vacios, siguen ahí. y si queremos eliminar una posición y recorrer los datos, ahí se presenta un problema. Pues bien, ArrayList es una lista implementada con arreglos dinámicos, así que cuando eliminamos un elemento (que no sea el último) lo que en realidad se hace es tomar la posición del elemento a eliminar y recorrer los elementos posteriores a este. Y si rebasamos la capacidad actu...

Programación: Variables

A veces necesitamos almacenar datos para que el programa pueda leer la información y utilizarla, cuando asignamos a ese dato una palabra clave, esa palabra clave se llama variable. Antes que otra cosa ¿Qué es una variable? En programación es un espacio reservado en memoria para un dato que puede ser fijo o puede ser establecido por el usuario. Antes de ver los casos y la forma de declararlas vamos a echar un ojo a los tipos de variable. Los tipos de variable hacen referencia a diferentes tipos de dato: Nombre Tipo Declaración Interger Entero Int Float Flotante (o punto decimal) Float Char/String Para caracter o cadena Char/Char[] Boolean Lógico (True/False) Bool Por ejemplo si quiero declarar una variable con el valor de pi necesito una variable de tipo flotante y se declara así: float pi = 3.141592; Si quisiera declarar un número fijo de 10 personas: int x = 10; Si quisiera declarar una letra "C" simplemente: char c = "C";...

Regresamos... ahora en Java.

Después de una breve larga ausencia estamos de regreso, nos quedamos con muchos temas e ideas por discutir a las que no quiero abandonar. Sin embargo y siendo sincero se manejarme un poco mejor en java de lo que lo hago en C++, así que daré este nuevo enfoque. De nuevo a todos, no se asusten es algo muy sencillo y se avanza a buen paso. Empezamos: Notas: Línea 1: package hace referencia al archivo donde tenemos nuestro código. Es decir, si el paquete se llama "holamundo", quiere decir que nuestro archivo se llama "holamundo.java". Línea 3: class se refiere a una estructura de la programación orientada a objetos. Dentro de las clases podemos alojar variables, métodos y otras estructuras. estos métodos y variables los podemos llamar después creando un objeto de ese tipo y asignándole valores. Línea 4: aquí vemos un ejemplo de método (tipo void , no regresa ningún tipo de valor). ATENTO a que el método está situado DENTRO de las llaves que definen la clase ...