2
Lo más leído
Definición:
La Ordenación de burbuja (Bubble Sort en inglés) es un sencillo algoritmo de
ordenamiento. Funciona revisando cada elemento de la lista que va a ser ordenada con el
siguiente, intercambiándolos de posición si están en el orden equivocado. Es necesario
revisar varias veces toda la lista hasta que no se necesiten más intercambios, lo cual
significa que la lista está ordenada. Este algoritmo obtiene su nombre de la forma con la
que suben por la lista los elementos durante los intercambios, como si fueran pequeñas
“burbujas”. También es conocido como el método del intercambio directo. Dado que solo
usa comparaciones para operar elementos, se lo considera un algoritmo de comparación,
siendo el más sencillo de implementar.
Ejemplo C#:
Programa con una Estructura del Metodo de Burbuja Simple que ordene 150 numeros, el
cual primero mostrara desordenados y despues de dar enter ordenar
using System;
using System.Collections.Generic;
using System.Text;
namespace Metodo_Ordenamiento_Burbuja_Simple
{
class Program
{
static void Main(string[] args)
{
int[] Numeros = new int[150];
int X = 150, Aux;
Random Num = new Random();
Console.WriteLine("Los Numeros Antes de Ordenar: ");
for (int Y = 0; Y < X; Y++)
{
Numeros[Y] = Num.Next(0, 500);
Console.WriteLine(Numeros[Y]);
}
Console.WriteLine("nnntt Presione Enter para Ordenar los
numeros");
Console.ReadLine();
Console.Clear();
for (int I = 0; I < X; I++)
{
for (int J = I + 1; J < X; J++)
{
if (Numeros[I] > Numeros[J])
{
Aux = Numeros[I];
Numeros[I] = Numeros[J];
Numeros[J] = Aux;
}
}
}
Console.WriteLine("Los Numeros Ordenados son");
for (int Y = 0; Y < X; Y++)
{
Console.WriteLine("{0}", Numeros[Y]);
}
Console.ReadLine();
}
}
}
¿Metodo de Burbuja C#?
Necesito acomodar este metodo para que se despliegue desde la Z hasta la A, pero no he podido
les agradeceria mucho si me pudieran explicar como debe ser el codigo..
Este metodo se despliega de la A a la Z y yo lo necesito al reves Z a la A
string[] aPalabras = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "M", "N", "O", "P", "Q", "R",
"S", "T", "U", "V", "X", "Y", "Z" }; //Arreglo que contiene Letras
int i, j = 0; //contadores
string aux = "";
Console.WriteLine("Listado inicial t");
for(i = 0; i < aPalabras.Length; i++)
{
Console.WriteLine(i + " : " + aPalabras[i]);
}
for(i=0;i<aPalabras.Length-1;i++)
{
for(j=0;j<aPalabras.Length-i-1;j++…
{
if (aPalabras[j+1].CompareTo(aPalabras[j]) <= 0)
{
aux=aPalabras[j+1];
aPalabras[j+1]=aPalabras[j];
aPalabras[j]=aux; /
}
}
}
Console.WriteLine("Listado final (ordenado) t");
for(i = 0; i < aPalabras.Length; i++)
{
Console.WriteLine(i + " : " + aPalabras[i]);
}
 hace 3 años
 Reportar abusos
ale.NET
Mejor respuesta - elegida por quien preguntó
/*
Aqui esta tu código en C#
Espero te sirva, saludos ;)
*/
using System;
class Program
{
static void Main()
{
string[] aPalabras = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "M", "N", "O", "P", "Q",
"R", "S", "T", "U", "V", "X", "Y", "Z" }; //Arreglo que contiene Letras
Console.WriteLine("Listado inicial:");
foreach (string c in aPalabras)
Console.Write(c + " ");
//Metodo Burbuja
string temp = "";
for (int i = aPalabras.Length - 1; i >= 0; i--)
for (int j = 1; j <= i; j++)
if (aPalabras[j - 1].CompareTo(aPalabras[j]) <= 0)
{
temp = aPalabras[j - 1];
aPalabras[j - 1] = aPalabras[j];
aPalabras[j] = temp;
}
Console.WriteLine("nListado final:");
foreach (string c in aPalabras)
Console.Write(c + " ");
Console.ReadKey();
}
}
Método de Ordenamiento Burbuja en C#
Este método consiste en ir comparando cada par de elementos del array e ir moviendo el mayor
elemento hasta la última posición, comenzando desde la posición cero. Una vez acomodado el
mayor elemento, prosigue a encontrar y acomodar el segundo más grande comparando de nuevo
los elementos desde el inicio de la lista, y así sigue hasta ordenar todos los elementos del arreglo.
Al ser necesario revisar varias veces toda la lista hasta que no se necesiten más intercambios, hace
que el ordenamiento por burbuja sea uno de los algoritmos más ineficientes que existen. Incluso
entre los algoritmos de ordenamiento del mismo orden, otros como el “Ordenamiento por
inserción” son considerados más eficientes. Y lo más curioso es que este procedimiento es uno de
los más usados para ordenar listas en todos los lenguajes de programación.
Estos serían los pasos a seguir por este algoritmo para ordenar una lista a1, a2, a3, … an
1) Comparar a1 con a2 e intercambiarlos si a1>a2
2) Seguir hasta que se haya comparado an-1 con an
3) Repetir el proceso anterior n-1 veces
Ejemplo:
25 57 48 37 12 92 86 33
En el primer paso se realizan las siguientes operaciones:
x[0] con x[1] (25 con 57) no intercambio.
x[1] con x[2] (57 con 48) intercambio.
x[2] con x[3] (57 con 32) intercambio.
x[3] con x[4] (57 con 12) intercambio.
x[4] con x[5] (57 con 92) no intercambio.
x[5] con x[6] (92 con 86) intercambio.
x[6] con x[7] (92 con 33) intercambio.
Así después del primer paso, el arreglo está en el siguiente orden:
25 48 37 12 57 86 33 92
Observe que después del primer paso, el elemento mayor (en este caso 92) está en la posición
correcta dentro del arreglo. En general x[n-i] estará en su posición correcta después de la iteración
i. El método se lama ordenamiento de burbuja porque cada número “burbujea” con lentitud hacia
su posición correcta. El conjunto completo de iteraciones es:
iteración 0 : 25 57 48 37 12 92 86 33
iteración 1: 25 48 37 12 57 86 33 92
iteración 2: 25 37 12 48 57 33 86 92
iteración 3: 25 12 37 48 33 57 86 92
iteración 4: 12 25 37 33 48 57 89 92
iteración 5: 12 25 33 37 48 57 89 92
A continuación veamos un ejemplo en Pseudo-Código Para el Método Burbuja
Metodo de la burbuja en algoritmo
Ejemplo del Método de Ordenamiento Burbuja en C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Burbuja
{
class Burbuja
{
private int[] vector;
public void Cargar()
{
Console.WriteLine("Metodo de Burbuja");
Console.Write("Cuantos longitud del vector: ");
string linea;
linea = Console.ReadLine();
int cant;
cant = int.Parse(linea);
vector = new int[cant];
for (int f = 0; f < vector.Length; f++)
{
Console.Write("Ingrese elemento "+(f+1)+": ");
linea = Console.ReadLine();
vector[f] = int.Parse(linea);
}
}
public void MetodoBurbuja()
{
int t;
for (int a = 1; a < vector.Length; a++)
for (int b = vector.Length - 1; b >= a; b--)
{
if (vector[b - 1] > vector[b])
{
t = vector[b - 1];
vector[b - 1] = vector[b];
vector[b] = t;
}
}
}
public void Imprimir()
{
Console.WriteLine("Vector ordenados en forma ascendente");
for (int f = 0; f < vector.Length; f++)
{
Console.Write(vector[f]+" ");
}
Console.ReadKey();
}
static void Main(string[] args)
{
Burbuja pv = new Burbuja();
pv.Cargar();
pv.MetodoBurbuja();
pv.Imprimir();
}
}
}
Método de Ordenamiento Burbuja en C#
Este método consiste en ir comparando cada par de elementos del array e ir moviendo el mayor
elemento hasta la última posición, comenzando desde la posición cero. Una vez acomodado el
mayor elemento, prosigue a encontrar y acomodar el segundo más grande comparando de nuevo
los elementos desde el inicio de la lista, y así sigue hasta ordenar todos los elementos del arreglo.
Al ser necesario revisar varias veces toda la lista hasta que no se necesiten más intercambios, hace
que el ordenamiento por burbuja sea uno de los algoritmos más ineficientes que existen. Incluso
entre los algoritmos de ordenamiento del mismo orden, otros como el “Ordenamiento por
inserción” son considerados más eficientes. Y lo más curioso es que este procedimiento es uno de
los más usados para ordenar listas en todos los lenguajes de programación.
Estos serían los pasos a seguir por este algoritmo para ordenar una lista a1, a2, a3, … an
1) Comparar a1 con a2 e intercambiarlos si a1>a2
2) Seguir hasta que se haya comparado an-1 con an
3) Repetir el proceso anterior n-1 veces
Ejemplo:
25 57 48 37 12 92 86 33
En el primer paso se realizan las siguientes operaciones:
x[0] con x[1] (25 con 57) no intercambio.
x[1] con x[2] (57 con 48) intercambio.
x[2] con x[3] (57 con 32) intercambio.
x[3] con x[4] (57 con 12) intercambio.
x[4] con x[5] (57 con 92) no intercambio.
x[5] con x[6] (92 con 86) intercambio.
x[6] con x[7] (92 con 33) intercambio.
Así después del primer paso, el arreglo está en el siguiente orden:
25 48 37 12 57 86 33 92
Observe que después del primer paso, el elemento mayor (en este caso 92) está en la posición
correcta dentro del arreglo. En general x[n-i] estará en su posición correcta después de la iteración
i. El método se lama ordenamiento de burbuja porque cada número “burbujea” con lentitud hacia
su posición correcta. El conjunto completo de iteraciones es:
iteración 0 : 25 57 48 37 12 92 86 33
iteración 1: 25 48 37 12 57 86 33 92
iteración 2: 25 37 12 48 57 33 86 92
iteración 3: 25 12 37 48 33 57 86 92
iteración 4: 12 25 37 33 48 57 89 92
iteración 5: 12 25 33 37 48 57 89 92
A continuación veamos un ejemplo en Pseudo-Código Para el Método Burbuja
Ejemplo del Método de Ordenamiento Burbuja en C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Burbuja
{
class Burbuja
{
private int[] vector;
public void Cargar()
{
Console.WriteLine("Metodo de Burbuja");
Console.Write("Cuantos longitud del vector: ");
string linea;
linea = Console.ReadLine();
int cant;
cant = int.Parse(linea);
vector = new int[cant];
for (int f = 0; f < vector.Length; f++)
{
Console.Write("Ingrese elemento "+(f+1)+": ");
linea = Console.ReadLine();
vector[f] = int.Parse(linea);
}
}
public void MetodoBurbuja()
{
int t;
for (int a = 1; a < vector.Length; a++)
for (int b = vector.Length - 1; b >= a; b--)
{
if (vector[b - 1] > vector[b])
{
t = vector[b - 1];
vector[b - 1] = vector[b];
vector[b] = t;
}
}
}
public void Imprimir()
{
Console.WriteLine("Vector ordenados en forma ascendente");
for (int f = 0; f < vector.Length; f++)
{
Console.Write(vector[f]+" ");
}
Console.ReadKey();
}
static void Main(string[] args)
{
Burbuja pv = new Burbuja();
pv.Cargar();
pv.MetodoBurbuja();
pv.Imprimir();
}
}
}

Más contenido relacionado

PPTX
Metodo Intercambio
PPT
Metodos Busqueda Interna
ODP
Método por plegamiento Hash
PPTX
Listas
PDF
5 modelo relacional
PPTX
Double Linked List (Algorithm)
PPT
Bases de Datos Cap:IV
PPTX
sorting and its types
Metodo Intercambio
Metodos Busqueda Interna
Método por plegamiento Hash
Listas
5 modelo relacional
Double Linked List (Algorithm)
Bases de Datos Cap:IV
sorting and its types

La actualidad más candente (20)

PPTX
Dbms keys
PDF
Algoritmos de Ordenamiento Burbuja
PPT
stack and queue array implementation in java.
PPTX
Método de Búsqueda Hash
PPT
Data Structure Lecture 3
PPTX
Función Hash: metodos de división y de medio Cuadrado.
PPTX
Estructuras lineales
DOC
Unidad 4 est. dat. recursividad
PPTX
Quick sort
PPT
Relational algebra operations
DOCX
Listas como estructura de datos..
PPTX
Threaded Binary Tree
DOCX
Algoritmos de busqueda - hash truncamiento
PPTX
Introduction to data structure
PPTX
Método de Heapsort
PDF
Comparativa entre Algoritmos de Ordenamiento
PDF
Sql functions
PPTX
sorting and searching.pptx
PPTX
Stack and its Applications : Data Structures ADT
PPTX
Mapping Cardinalities
Dbms keys
Algoritmos de Ordenamiento Burbuja
stack and queue array implementation in java.
Método de Búsqueda Hash
Data Structure Lecture 3
Función Hash: metodos de división y de medio Cuadrado.
Estructuras lineales
Unidad 4 est. dat. recursividad
Quick sort
Relational algebra operations
Listas como estructura de datos..
Threaded Binary Tree
Algoritmos de busqueda - hash truncamiento
Introduction to data structure
Método de Heapsort
Comparativa entre Algoritmos de Ordenamiento
Sql functions
sorting and searching.pptx
Stack and its Applications : Data Structures ADT
Mapping Cardinalities
Publicidad

Similar a Metodo de la burbuja en algoritmo (20)

PPTX
Ordenamiento en C++
PPT
Unidad 1 1
PPTX
Ordenacion y busqueda
DOCX
Algoritmos de ordenamiento
DOCX
Ordenamientos de vectores
PDF
Informe ordenamiento
DOCX
Metodos de odenamiento de vctores
PPT
Fundamentos de programación vectores y matrices
PPT
Metodos De Ordenamiento
DOCX
Algoritmos Ordenamiento
PPTX
Presentacion
PDF
metodos-de-ordenamiento.pdf
PDF
Mètodos de Ordenaciòn y bùsqueda
PPT
Ordenar arreglos en java
PPTX
Algoritmo por seleccion
DOC
1_Metodos.doc
DOCX
Informe insercion
PDF
Ordenamiento de Shell y ordenamiento por mezcla.pdf
PPT
Jflambert lyada - ayudantia matematicas discretas
Ordenamiento en C++
Unidad 1 1
Ordenacion y busqueda
Algoritmos de ordenamiento
Ordenamientos de vectores
Informe ordenamiento
Metodos de odenamiento de vctores
Fundamentos de programación vectores y matrices
Metodos De Ordenamiento
Algoritmos Ordenamiento
Presentacion
metodos-de-ordenamiento.pdf
Mètodos de Ordenaciòn y bùsqueda
Ordenar arreglos en java
Algoritmo por seleccion
1_Metodos.doc
Informe insercion
Ordenamiento de Shell y ordenamiento por mezcla.pdf
Jflambert lyada - ayudantia matematicas discretas
Publicidad

Último (20)

PDF
Texto Digital Los Miserables - Victor Hugo Ccesa007.pdf
PDF
Mi Primer Millon - Poissant - Godefroy Ccesa007.pdf
PDF
Telos 127 Generacion Al fa Beta - fundaciontelefonica
PDF
Manual del Gobierno Escolar -MINEDUC.pdf
PDF
Ernst Cassirer - Antropologia Filosofica.pdf
PDF
IPERC...................................
DOCX
PLANES DE área ciencias naturales y aplicadas
DOCX
PLAN DE CASTELLANO 2021 actualizado a la normativa
PDF
ciencia_tecnologia_sociedad Mitcham Carl. (1994)..pdf
DOCX
PLAN DE AREA DE CIENCIAS SOCIALES TODOS LOS GRUPOS
PDF
Como Potenciar las Emociones Positivas y Afrontar las Negativas Ccesa007.pdf
PDF
RM2025 - FUNDAMENTOS TEÓRICOS - PEDIATRÍA.pdf
PDF
CURRICULAR DE PRIMARIA santa ursula..pdf
PDF
La Inteligencia Emocional - Fabian Goleman TE4 Ccesa007.pdf
PDF
2.0 Introduccion a processing, y como obtenerlo
PPTX
MATEMATICAS GEOMETRICA USO TRANSPORTADOR
PDF
ACERTIJO EL CONJURO DEL CAZAFANTASMAS MATEMÁTICO. Por JAVIER SOLIS NOYOLA
PDF
Los hombres son de Marte - Las mujeres de Venus Ccesa007.pdf
PPTX
RESUMENES JULIO - QUIRÓFANO HOSPITAL GENERAL PUYO.pptx
PDF
Esc. Sab. Lección 7. El pan y el agua de vida.pdf
Texto Digital Los Miserables - Victor Hugo Ccesa007.pdf
Mi Primer Millon - Poissant - Godefroy Ccesa007.pdf
Telos 127 Generacion Al fa Beta - fundaciontelefonica
Manual del Gobierno Escolar -MINEDUC.pdf
Ernst Cassirer - Antropologia Filosofica.pdf
IPERC...................................
PLANES DE área ciencias naturales y aplicadas
PLAN DE CASTELLANO 2021 actualizado a la normativa
ciencia_tecnologia_sociedad Mitcham Carl. (1994)..pdf
PLAN DE AREA DE CIENCIAS SOCIALES TODOS LOS GRUPOS
Como Potenciar las Emociones Positivas y Afrontar las Negativas Ccesa007.pdf
RM2025 - FUNDAMENTOS TEÓRICOS - PEDIATRÍA.pdf
CURRICULAR DE PRIMARIA santa ursula..pdf
La Inteligencia Emocional - Fabian Goleman TE4 Ccesa007.pdf
2.0 Introduccion a processing, y como obtenerlo
MATEMATICAS GEOMETRICA USO TRANSPORTADOR
ACERTIJO EL CONJURO DEL CAZAFANTASMAS MATEMÁTICO. Por JAVIER SOLIS NOYOLA
Los hombres son de Marte - Las mujeres de Venus Ccesa007.pdf
RESUMENES JULIO - QUIRÓFANO HOSPITAL GENERAL PUYO.pptx
Esc. Sab. Lección 7. El pan y el agua de vida.pdf

Metodo de la burbuja en algoritmo

  • 1. Definición: La Ordenación de burbuja (Bubble Sort en inglés) es un sencillo algoritmo de ordenamiento. Funciona revisando cada elemento de la lista que va a ser ordenada con el siguiente, intercambiándolos de posición si están en el orden equivocado. Es necesario revisar varias veces toda la lista hasta que no se necesiten más intercambios, lo cual significa que la lista está ordenada. Este algoritmo obtiene su nombre de la forma con la que suben por la lista los elementos durante los intercambios, como si fueran pequeñas “burbujas”. También es conocido como el método del intercambio directo. Dado que solo usa comparaciones para operar elementos, se lo considera un algoritmo de comparación, siendo el más sencillo de implementar. Ejemplo C#: Programa con una Estructura del Metodo de Burbuja Simple que ordene 150 numeros, el cual primero mostrara desordenados y despues de dar enter ordenar using System; using System.Collections.Generic; using System.Text; namespace Metodo_Ordenamiento_Burbuja_Simple { class Program { static void Main(string[] args) { int[] Numeros = new int[150];
  • 2. int X = 150, Aux; Random Num = new Random(); Console.WriteLine("Los Numeros Antes de Ordenar: "); for (int Y = 0; Y < X; Y++) { Numeros[Y] = Num.Next(0, 500); Console.WriteLine(Numeros[Y]); } Console.WriteLine("nnntt Presione Enter para Ordenar los numeros"); Console.ReadLine(); Console.Clear(); for (int I = 0; I < X; I++) { for (int J = I + 1; J < X; J++) { if (Numeros[I] > Numeros[J]) { Aux = Numeros[I]; Numeros[I] = Numeros[J]; Numeros[J] = Aux; } } } Console.WriteLine("Los Numeros Ordenados son"); for (int Y = 0; Y < X; Y++) { Console.WriteLine("{0}", Numeros[Y]); } Console.ReadLine(); } } } ¿Metodo de Burbuja C#? Necesito acomodar este metodo para que se despliegue desde la Z hasta la A, pero no he podido les agradeceria mucho si me pudieran explicar como debe ser el codigo.. Este metodo se despliega de la A a la Z y yo lo necesito al reves Z a la A string[] aPalabras = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "X", "Y", "Z" }; //Arreglo que contiene Letras int i, j = 0; //contadores
  • 3. string aux = ""; Console.WriteLine("Listado inicial t"); for(i = 0; i < aPalabras.Length; i++) { Console.WriteLine(i + " : " + aPalabras[i]); } for(i=0;i<aPalabras.Length-1;i++) { for(j=0;j<aPalabras.Length-i-1;j++… { if (aPalabras[j+1].CompareTo(aPalabras[j]) <= 0) { aux=aPalabras[j+1]; aPalabras[j+1]=aPalabras[j]; aPalabras[j]=aux; / } } } Console.WriteLine("Listado final (ordenado) t"); for(i = 0; i < aPalabras.Length; i++) { Console.WriteLine(i + " : " + aPalabras[i]); }  hace 3 años  Reportar abusos ale.NET Mejor respuesta - elegida por quien preguntó /* Aqui esta tu código en C# Espero te sirva, saludos ;) */
  • 4. using System; class Program { static void Main() { string[] aPalabras = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "X", "Y", "Z" }; //Arreglo que contiene Letras Console.WriteLine("Listado inicial:"); foreach (string c in aPalabras) Console.Write(c + " "); //Metodo Burbuja string temp = ""; for (int i = aPalabras.Length - 1; i >= 0; i--) for (int j = 1; j <= i; j++) if (aPalabras[j - 1].CompareTo(aPalabras[j]) <= 0) { temp = aPalabras[j - 1]; aPalabras[j - 1] = aPalabras[j]; aPalabras[j] = temp; } Console.WriteLine("nListado final:"); foreach (string c in aPalabras) Console.Write(c + " "); Console.ReadKey(); } }
  • 5. Método de Ordenamiento Burbuja en C# Este método consiste en ir comparando cada par de elementos del array e ir moviendo el mayor elemento hasta la última posición, comenzando desde la posición cero. Una vez acomodado el mayor elemento, prosigue a encontrar y acomodar el segundo más grande comparando de nuevo los elementos desde el inicio de la lista, y así sigue hasta ordenar todos los elementos del arreglo. Al ser necesario revisar varias veces toda la lista hasta que no se necesiten más intercambios, hace que el ordenamiento por burbuja sea uno de los algoritmos más ineficientes que existen. Incluso entre los algoritmos de ordenamiento del mismo orden, otros como el “Ordenamiento por inserción” son considerados más eficientes. Y lo más curioso es que este procedimiento es uno de los más usados para ordenar listas en todos los lenguajes de programación. Estos serían los pasos a seguir por este algoritmo para ordenar una lista a1, a2, a3, … an 1) Comparar a1 con a2 e intercambiarlos si a1>a2 2) Seguir hasta que se haya comparado an-1 con an 3) Repetir el proceso anterior n-1 veces Ejemplo: 25 57 48 37 12 92 86 33 En el primer paso se realizan las siguientes operaciones: x[0] con x[1] (25 con 57) no intercambio. x[1] con x[2] (57 con 48) intercambio. x[2] con x[3] (57 con 32) intercambio. x[3] con x[4] (57 con 12) intercambio. x[4] con x[5] (57 con 92) no intercambio. x[5] con x[6] (92 con 86) intercambio. x[6] con x[7] (92 con 33) intercambio.
  • 6. Así después del primer paso, el arreglo está en el siguiente orden: 25 48 37 12 57 86 33 92 Observe que después del primer paso, el elemento mayor (en este caso 92) está en la posición correcta dentro del arreglo. En general x[n-i] estará en su posición correcta después de la iteración i. El método se lama ordenamiento de burbuja porque cada número “burbujea” con lentitud hacia su posición correcta. El conjunto completo de iteraciones es: iteración 0 : 25 57 48 37 12 92 86 33 iteración 1: 25 48 37 12 57 86 33 92 iteración 2: 25 37 12 48 57 33 86 92 iteración 3: 25 12 37 48 33 57 86 92 iteración 4: 12 25 37 33 48 57 89 92 iteración 5: 12 25 33 37 48 57 89 92 A continuación veamos un ejemplo en Pseudo-Código Para el Método Burbuja
  • 8. Ejemplo del Método de Ordenamiento Burbuja en C# using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Burbuja { class Burbuja { private int[] vector; public void Cargar() { Console.WriteLine("Metodo de Burbuja"); Console.Write("Cuantos longitud del vector: "); string linea; linea = Console.ReadLine();
  • 9. int cant; cant = int.Parse(linea); vector = new int[cant]; for (int f = 0; f < vector.Length; f++) { Console.Write("Ingrese elemento "+(f+1)+": "); linea = Console.ReadLine(); vector[f] = int.Parse(linea); } } public void MetodoBurbuja() { int t; for (int a = 1; a < vector.Length; a++) for (int b = vector.Length - 1; b >= a; b--) { if (vector[b - 1] > vector[b]) { t = vector[b - 1]; vector[b - 1] = vector[b]; vector[b] = t; } } } public void Imprimir() {
  • 10. Console.WriteLine("Vector ordenados en forma ascendente"); for (int f = 0; f < vector.Length; f++) { Console.Write(vector[f]+" "); } Console.ReadKey(); } static void Main(string[] args) { Burbuja pv = new Burbuja(); pv.Cargar(); pv.MetodoBurbuja(); pv.Imprimir(); } } } Método de Ordenamiento Burbuja en C# Este método consiste en ir comparando cada par de elementos del array e ir moviendo el mayor elemento hasta la última posición, comenzando desde la posición cero. Una vez acomodado el mayor elemento, prosigue a encontrar y acomodar el segundo más grande comparando de nuevo los elementos desde el inicio de la lista, y así sigue hasta ordenar todos los elementos del arreglo. Al ser necesario revisar varias veces toda la lista hasta que no se necesiten más intercambios, hace que el ordenamiento por burbuja sea uno de los algoritmos más ineficientes que existen. Incluso entre los algoritmos de ordenamiento del mismo orden, otros como el “Ordenamiento por inserción” son considerados más eficientes. Y lo más curioso es que este procedimiento es uno de los más usados para ordenar listas en todos los lenguajes de programación. Estos serían los pasos a seguir por este algoritmo para ordenar una lista a1, a2, a3, … an 1) Comparar a1 con a2 e intercambiarlos si a1>a2 2) Seguir hasta que se haya comparado an-1 con an
  • 11. 3) Repetir el proceso anterior n-1 veces Ejemplo: 25 57 48 37 12 92 86 33 En el primer paso se realizan las siguientes operaciones: x[0] con x[1] (25 con 57) no intercambio. x[1] con x[2] (57 con 48) intercambio. x[2] con x[3] (57 con 32) intercambio. x[3] con x[4] (57 con 12) intercambio. x[4] con x[5] (57 con 92) no intercambio. x[5] con x[6] (92 con 86) intercambio. x[6] con x[7] (92 con 33) intercambio. Así después del primer paso, el arreglo está en el siguiente orden: 25 48 37 12 57 86 33 92 Observe que después del primer paso, el elemento mayor (en este caso 92) está en la posición correcta dentro del arreglo. En general x[n-i] estará en su posición correcta después de la iteración i. El método se lama ordenamiento de burbuja porque cada número “burbujea” con lentitud hacia su posición correcta. El conjunto completo de iteraciones es: iteración 0 : 25 57 48 37 12 92 86 33 iteración 1: 25 48 37 12 57 86 33 92
  • 12. iteración 2: 25 37 12 48 57 33 86 92 iteración 3: 25 12 37 48 33 57 86 92 iteración 4: 12 25 37 33 48 57 89 92 iteración 5: 12 25 33 37 48 57 89 92 A continuación veamos un ejemplo en Pseudo-Código Para el Método Burbuja
  • 13. Ejemplo del Método de Ordenamiento Burbuja en C# using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Burbuja { class Burbuja { private int[] vector; public void Cargar() { Console.WriteLine("Metodo de Burbuja"); Console.Write("Cuantos longitud del vector: "); string linea;
  • 14. linea = Console.ReadLine(); int cant; cant = int.Parse(linea); vector = new int[cant]; for (int f = 0; f < vector.Length; f++) { Console.Write("Ingrese elemento "+(f+1)+": "); linea = Console.ReadLine(); vector[f] = int.Parse(linea); } } public void MetodoBurbuja() { int t; for (int a = 1; a < vector.Length; a++) for (int b = vector.Length - 1; b >= a; b--) { if (vector[b - 1] > vector[b]) { t = vector[b - 1]; vector[b - 1] = vector[b]; vector[b] = t; } } } public void Imprimir()
  • 15. { Console.WriteLine("Vector ordenados en forma ascendente"); for (int f = 0; f < vector.Length; f++) { Console.Write(vector[f]+" "); } Console.ReadKey(); } static void Main(string[] args) { Burbuja pv = new Burbuja(); pv.Cargar(); pv.MetodoBurbuja(); pv.Imprimir(); } } }