Académique Documents
Professionnel Documents
Culture Documents
El ordenamiento de burbuja (Bubble Sort), tambien conocido como mtodo del intercambio directo es un algoritmo que obtiene su nombre de la forma con la que suben los elemento de una lista, como si fueran burbujas. Funciona comparando elementos de dos en dos en un ciclo, intecambiandolos segn sea el caso. Es necesario revisar varias veces toda la lista has que no se necesiten ms intercambios. Algoritmo (Ordenamiento de Burbuja) i=0,j=0,N=4 ListaNoOrdenada[5] {5,10,1,3,2} Para i desde 0 hasta N Para j desde 0 hasta N Si No_Ordenados(ListaNoOrdenada[j] > ListaNoOrdenada[j + 1] entonces variable_temp = ListaNoOrdenada[j] ListaNoOrdenada[j] = ListaNoOrdenada[j + 1] ListaNoOrdenada[j + 1] = variable_temp FinSi Siguiente i Fin Ejemplo: La idea de este programa es ordenar el arreglo numrico {5,10,1,3,2} de menor a mayor. El ordenamiento de burbuja lo que hace es seleccionar los primeros dos elementos, compararlos, y si el primero es mayor que el segundo, hace el intercambio, el mayor se va a una variable temporal, cediendo su lugar al nmero menor, y despues pasa a ocupar la posicin que ocupaba el otro. El procedimiento se lleva a cabo en un ciclo hasta que verifica todos los nmeros y estan correctamente ordenados. Cdigo using System; using System.Collections.Generic; using System.Drawing;
Curso: II A Sistemas
using System.Windows.Forms; namespace BubbleSort { /// <summary> /// Description of MainForm. /// </summary> public partial class frmPrincipal { public int[] ListaNoOrdenada; public int N; [STAThread] public static void Main(string[] args) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new frmPrincipal()); } public frmPrincipal() { // // The InitializeComponent() call is required for Windows Forms designer support. // InitializeComponent();
Curso: II A Sistemas
// // TODO: Add constructor code after the InitializeComponent() call. // } void CmdOrdenarClick(object sender, System.EventArgs e) { Burbuja(ListaNoOrdenada); } void FrmPrincipalLoad(object sender, System.EventArgs e) { //Despliega datos en ListBox for (int i=0; i <= N;i++) { lsNoOrd.Items.Add(ListaNoOrdenada[i]); } } // Procedimiento recibiendo parametros public void Burbuja(int[] LNO) { // Variables int i, j; int temp; // N Pasadas for (i = 0; i < N; i++) { for (j = 0; j < N; j++)
Curso: II A Sistemas
{ // Comparando parejas de nmeros if (LNO[j] > LNO[j + 1]) { // Asignando valores ordenados temp = LNO[j]; LNO[j] = LNO[j + 1]; LNO[j + 1] = temp; } } } // Despliega datos en ListBox for (int c=0; c <= N;c++) { lsOrd.Items.Add(LNO[c]); } } } }
Curso: II A Sistemas