Vous êtes sur la page 1sur 4

Mtodo de Ordenamiento Tipo Burbuja en C#

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;

Nombre: Anas Ruiz Escobar

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();

ListaNoOrdenada = new int[5] {5,10,1,3,2}; N = 4;

Nombre: Anas Ruiz Escobar

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++)

Nombre: Anas Ruiz Escobar

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]); } } } }

Nombre: Anas Ruiz Escobar

Curso: II A Sistemas

Vous aimerez peut-être aussi