METODOS DE ORDENACION EN C#
Esto de ordenar los datos también es importante el algunas cuestiones de la progrmación por eso aqui estan los metodos de ordenacion mas famosos en un ejemplo en modo consola:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace MetodosOrdenacion
{
class Program
{
static void Main(string[] args)
{
Console.Write("cuantos numeros
desea ingresar: ");
int n = int.Parse(Console.ReadLine());
int []numeros =new int [n];
Console.WriteLine("Ingrese sus {0}
numero:",n);
for (int i = 0; i < n;i++)
{
numeros[i]=(int.Parse(Console.ReadLine()));
}
Console.Write(@"Que metodo
desea llevar a cabo
1.- insercion
2.- shell
3.- Quick Sort
4.-
burbuja (");
int x=int.Parse(Console.ReadLine());
Console.WriteLine("");
switch(x)
{
case 1:
Console.WriteLine("Metodo de
insercion directa\n");
int auxili;
int j;
for (int i = 0; i <
numeros.Length ; i++)
{
auxili =
numeros[i];
j = i - 1;
while (j >= 0 && numeros[j] > auxili)
{
numeros[j
+ 1] = numeros[j];
j--;
}
numeros[j +
1] = auxili;
}
for (int i = 0; i <
numeros.Length; i++)
Console.WriteLine(" " + numeros[i]);
break;
//-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
//-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
case 2:
Console.WriteLine("Metodo de
Shell\n");
int salto = 0;
int sw=0;
int auxi = 0;
int e=0;
salto =
numeros.Length / 2;
while (salto >0)
{
sw=1;
while (sw!=0)
{
sw=0;
e=1;
while (e <= (numeros.Length - salto))
{
if (numeros [e-1]>numeros [(e-1)+salto ])
{
auxi =numeros [(e-1)+salto ];
numeros [(e-1)+salto ]=numeros [e-1];
numeros [(e-1)]=auxi;
sw=1;
}
e++;
}
}
salto =salto /2;
}
for (int i = 0; i <
numeros.Length; i++)
Console.WriteLine(" " + numeros[i]);
break;
//-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
//-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
case 3:
Console.WriteLine("metodo de Quick
sorf");
quicksort(numeros, 0, numeros.Length - 1);
for (int i = 0; i <
numeros.Length; i++)
{
Console.WriteLine(numeros[i]);
}
break;
//-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
//-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
case 4:
Console.WriteLine("Metodo de la
burbuja");
int temp;
for (int i = 0; i <
numeros.Length; i++)
{
for (int k = i + 1; k <
numeros.Length; k++)
{
if (numeros[i] > numeros[k])
{
temp
= numeros[i];
numeros[i] = numeros[k];
numeros[k] = temp;
}
}
}
for (int i = 0; i <
numeros.Length; i++)
{
Console.WriteLine(" " + numeros[i]);
}
break;
default:
Console.WriteLine("Opcion no
validad\n\nFin del programa");
break;
}
Console.ReadKey();
}
public static void quicksort(int[] vector, int primero, int ultimo)
{
int i, j, central;
double pivote;
central = (primero +
ultimo) / 2;
pivote =
vector[central];
i = primero;
j = ultimo;
do
{
while (vector[i] < pivote) i++;
while (vector[j] > pivote) j--;
if (i <= j)
{
int temp;
temp =
vector[i];
vector[i] =
vector[j];
vector[j] =
temp;
i++;
j--;
}
} while (i <= j);
if (primero < j)
{
quicksort(vector,
primero, j);
}
if (i < ultimo)
{
quicksort(vector, i,
ultimo);
}
}
}
}
muy elegante el algoritmo me sirvió demasiado (Y)
ResponderEliminar"FELICIDADES ESTA SUPER BIEN EL ALGRITMO" :)
ResponderEliminarEN HORA BUENA SALUDOS DESDE CARLOS A CARRILLO VER.
Hola, ¿existe la posibilidad de utilizar algún método de ordenación para ordenar un directorio con varios archivos de diferentes extensiones en otras carpetas y que el nombre de estos sea una fecha con unas letras?
ResponderEliminarme recuerda mucho a los algoritmo que me hacian hacer en la facu hace 2 años atras.
ResponderEliminarbuen aporte
abrazo
muy bueno, ......... thanks
ResponderEliminarexcelente y fácil de comprender
ResponderEliminardemasiado bueno...
ResponderEliminar