Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Created July 3, 2021 02:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save parzibyte/78cb5634bf1b9e34664939071e6872c1 to your computer and use it in GitHub Desktop.
Save parzibyte/78cb5634bf1b9e34664939071e6872c1 to your computer and use it in GitHub Desktop.
using System;
namespace App
{
class Programa
{
static void ordenarBurbuja(int[] arreglo)
{
for (int x = 0; x < arreglo.Length; x++)
{
// Recuerda que el -1 es porque no queremos llegar al final ya que hacemos
// un indiceActual + 1 y si fuéramos hasta el final, intentaríamos acceder a un valor fuera de los límites
// del arreglo
for (int indiceActual = 0; indiceActual < arreglo.Length - 1;
indiceActual++)
{
int indiceSiguienteElemento = indiceActual + 1;
// Si el actual es mayor que el que le sigue a la derecha...
if (arreglo[indiceActual] > arreglo[indiceSiguienteElemento])
{
int temporal = arreglo[indiceActual];
arreglo[indiceActual] = arreglo[indiceSiguienteElemento];
arreglo[indiceSiguienteElemento] = temporal;
}
}
}
}
static void ordenarBurbujaDescendente(int[] arreglo)
{
for (int x = 0; x < arreglo.Length; x++)
{
// Recuerda que el -1 es porque no queremos llegar al final ya que hacemos
// un indiceActual + 1 y si fuéramos hasta el final, intentaríamos acceder a un valor fuera de los límites
// del arreglo
for (int indiceActual = 0; indiceActual < arreglo.Length - 1;
indiceActual++)
{
int indiceSiguienteElemento = indiceActual + 1;
// Si el actual es menor que el que le sigue a la derecha...
if (arreglo[indiceActual] < arreglo[indiceSiguienteElemento])
{
int temporal = arreglo[indiceActual];
arreglo[indiceActual] = arreglo[indiceSiguienteElemento];
arreglo[indiceSiguienteElemento] = temporal;
}
}
}
}
static void ordenarBurbujaCadenas(string[] arreglo)
{
for (int x = 0; x < arreglo.Length; x++)
{
// Recuerda que el -1 es porque no queremos llegar al final ya que hacemos
// un indiceActual + 1 y si fuéramos hasta el final, intentaríamos acceder a un valor fuera de los límites
// del arreglo
for (int indiceActual = 0; indiceActual < arreglo.Length - 1;
indiceActual++)
{
int indiceSiguienteElemento = indiceActual + 1;
// Si el actual es mayor que el que le sigue a la derecha...
if (arreglo[indiceActual].CompareTo(arreglo[indiceSiguienteElemento]) > 0)
{
string temporal = arreglo[indiceActual];
arreglo[indiceActual] = arreglo[indiceSiguienteElemento];
arreglo[indiceSiguienteElemento] = temporal;
}
}
}
}
/*
https://parzibyte.me/blog
*/
static void Main(string[] args)
{
int[] numeros = { 15, 1, 34, 5, 90, 10, 6 };
Console.WriteLine("Antes de ordenar");
foreach (var numero in numeros)
{
Console.Write(numero + ",");
}
Console.WriteLine("");
ordenarBurbuja(numeros);
Console.WriteLine("Después de ordenar ascendente");
foreach (var numero in numeros)
{
Console.Write(numero + ",");
}
Console.WriteLine();
ordenarBurbujaDescendente(numeros);
Console.WriteLine("Después de ordenar descendente");
foreach (var numero in numeros)
{
Console.Write(numero + ",");
}
Console.WriteLine();
string[] cadenas = { "Luis", "Zelda", "Link", "Aloy", "Ethan" };
Console.WriteLine("Arreglo de cadenas antes de ordenar: ");
foreach (var cadena in cadenas)
{
Console.Write(cadena + ",");
}
Console.WriteLine();
ordenarBurbujaCadenas(cadenas);
Console.WriteLine("Arreglo de cadenas antes de ordenar: ");
foreach (var cadena in cadenas)
{
Console.Write(cadena + ",");
}
Console.WriteLine();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment