-
-
Save parzibyte/78cb5634bf1b9e34664939071e6872c1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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