SlideShare una empresa de Scribd logo
1 de 15
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
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

La actualidad más candente

Insercion directa
Insercion directaInsercion directa
Insercion directa
abelpit2
 
Método de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortMétodo de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sort
linkinpark03
 
Estructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colas
Huascar Génere
 
conceptos de Punteros y Nodos
conceptos de Punteros y Nodosconceptos de Punteros y Nodos
conceptos de Punteros y Nodos
Boris Salleg
 
5. arboles binarios
5. arboles binarios5. arboles binarios
5. arboles binarios
elcapo2008
 

La actualidad más candente (20)

Insercion directa
Insercion directaInsercion directa
Insercion directa
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
 
Método de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortMétodo de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sort
 
Ordenamiento burbuja
Ordenamiento burbujaOrdenamiento burbuja
Ordenamiento burbuja
 
Algoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap SortAlgoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap Sort
 
Estructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colas
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno
 
Colas estáticas. IESIT
Colas estáticas. IESITColas estáticas. IESIT
Colas estáticas. IESIT
 
Bucket sort
Bucket sortBucket sort
Bucket sort
 
Pilas estáticas. IESIT
Pilas estáticas. IESITPilas estáticas. IESIT
Pilas estáticas. IESIT
 
Aplicaciòn de las estructuras de datos
Aplicaciòn de las estructuras de datosAplicaciòn de las estructuras de datos
Aplicaciòn de las estructuras de datos
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
 
Estructuras de datos lineales
Estructuras de datos linealesEstructuras de datos lineales
Estructuras de datos lineales
 
conceptos de Punteros y Nodos
conceptos de Punteros y Nodosconceptos de Punteros y Nodos
conceptos de Punteros y Nodos
 
5. arboles binarios
5. arboles binarios5. arboles binarios
5. arboles binarios
 
Programación 3: listas y conjuntos en java
Programación 3: listas y conjuntos en javaProgramación 3: listas y conjuntos en java
Programación 3: listas y conjuntos en java
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..
 
Arboles En Estructura de Datos
Arboles En Estructura de DatosArboles En Estructura de Datos
Arboles En Estructura de Datos
 

Similar a Metodo de la burbuja en algoritmo

Unidad 1 1
Unidad 1   1Unidad 1   1
Unidad 1 1
VivianaG
 
Algoritmos de ordenamiento
Algoritmos de ordenamientoAlgoritmos de ordenamiento
Algoritmos de ordenamiento
Orlando Torres
 
Ordenamientos de vectores
Ordenamientos de vectoresOrdenamientos de vectores
Ordenamientos de vectores
sirekarol
 
Metodos de odenamiento de vctores
Metodos de odenamiento de vctoresMetodos de odenamiento de vctores
Metodos de odenamiento de vctores
mishuhot
 
Metodos De Ordenamiento
Metodos De OrdenamientoMetodos De Ordenamiento
Metodos De Ordenamiento
lichic
 
Algoritmos Ordenamiento
Algoritmos OrdenamientoAlgoritmos Ordenamiento
Algoritmos Ordenamiento
Daniel Guaycha
 
Jflambert lyada - ayudantia matematicas discretas
Jflambert   lyada - ayudantia matematicas discretasJflambert   lyada - ayudantia matematicas discretas
Jflambert lyada - ayudantia matematicas discretas
Francisco Lambert Obediente
 
Jflambert lyada - ayudantia ordenamiento y teo maestro
Jflambert   lyada - ayudantia ordenamiento y teo maestroJflambert   lyada - ayudantia ordenamiento y teo maestro
Jflambert lyada - ayudantia ordenamiento y teo maestro
Francisco Lambert Obediente
 

Similar a Metodo de la burbuja en algoritmo (20)

Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++
 
Unidad 1 1
Unidad 1   1Unidad 1   1
Unidad 1 1
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busqueda
 
Algoritmos de ordenamiento
Algoritmos de ordenamientoAlgoritmos de ordenamiento
Algoritmos de ordenamiento
 
Ordenamientos de vectores
Ordenamientos de vectoresOrdenamientos de vectores
Ordenamientos de vectores
 
Informe ordenamiento
Informe ordenamientoInforme ordenamiento
Informe ordenamiento
 
Metodos de odenamiento de vctores
Metodos de odenamiento de vctoresMetodos de odenamiento de vctores
Metodos de odenamiento de vctores
 
Metodos De Ordenamiento
Metodos De OrdenamientoMetodos De Ordenamiento
Metodos De Ordenamiento
 
Bus99
Bus99Bus99
Bus99
 
Algoritmos Ordenamiento
Algoritmos OrdenamientoAlgoritmos Ordenamiento
Algoritmos Ordenamiento
 
Presentacion
PresentacionPresentacion
Presentacion
 
metodos-de-ordenamiento.pdf
metodos-de-ordenamiento.pdfmetodos-de-ordenamiento.pdf
metodos-de-ordenamiento.pdf
 
Mètodos de Ordenaciòn y bùsqueda
Mètodos de Ordenaciòn y bùsquedaMètodos de Ordenaciòn y bùsqueda
Mètodos de Ordenaciòn y bùsqueda
 
Ordenar arreglos en java
Ordenar arreglos en javaOrdenar arreglos en java
Ordenar arreglos en java
 
Algoritmo por seleccion
Algoritmo por seleccionAlgoritmo por seleccion
Algoritmo por seleccion
 
1_Metodos.doc
1_Metodos.doc1_Metodos.doc
1_Metodos.doc
 
Informe insercion
Informe insercionInforme insercion
Informe insercion
 
Jflambert lyada - ayudantia matematicas discretas
Jflambert   lyada - ayudantia matematicas discretasJflambert   lyada - ayudantia matematicas discretas
Jflambert lyada - ayudantia matematicas discretas
 
Jflambert lyada - ayudantia ordenamiento y teo maestro
Jflambert   lyada - ayudantia ordenamiento y teo maestroJflambert   lyada - ayudantia ordenamiento y teo maestro
Jflambert lyada - ayudantia ordenamiento y teo maestro
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
 

Último

RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
amelia poma
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 

Último (20)

Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por Valores
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
Los dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la VerdadLos dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la Verdad
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptFUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
 
PP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomasPP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomas
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
 

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
  • 7.
  • 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(); } } }