Random Sort

//De Jos, un algoritmo que desde hace rato queria hacer
//No es el mas eficiente, pero si el mas sin sentido…

/*”Un solo Shakespeare con pluma, tinta y papel jamás igualará la producción de infinitos monos con infinitos procesadores de texto.”*/

//Son estas las librerias para consolar
#include<iostream.h> //las que van de entrada por salida
#include<stdlib.h> //las europeas estandar

//librerias para el azar
#include<time.h> //el que es dinero.
#define randomize()(srand(time(0))) //aleatorizar
#define random(x)(rand()% x) //equis cantidad

int cantidad = 10; //aquellos dispuestos a ser ordenados
int *num = new int[cantidad]; //con cada new, un gatito muere
void swap(); //la denominada funcion del suapeo
int azar1; //azar1, que bien pudo haberse llamado azar27
int azar2; //como el de arriba pero totalmente distinto
int azar1anterior; //para guardar su recuerdo
int azar2anterior; //para seguir la costumbre

/*recorre el desbarajuste para corroborar que se hizo lo que se tenia que hacer*/
void imprimir()
{
for (int x=0; x<cantidad; x++)
{
cout << num[x] << ” “; //equis del desbarajuste saliendo a relucir
}
}

void llenar() //puros inventos
{
int azaroso; //el desdichado mutante

randomize(); //agarra una fichita y la menea bien sabroso
for (int x=0; x<cantidad; x++)
{
azaroso = random(cantidad); //le mete al azaroso un revoltoso
num[x] = azaroso; //y al desbarajuste lo que salio
}

}

void ordenar() //para poner orden
{
int flag=1; //semaforo en siga

while(flag!=0) //mientras que no se ponga en rojo el susodicho
{
flag = 0; //stoooop

for(int a=0; a<cantidad-1; a++)
{
if(num[a]>num[a+1]) //si es desbarajuste esta desbarajustado
{
flag=1; //lo ponemos en verde
}
}

if(flag==1) //si nos pasamos un alto… pero no.
{
/*llamamos a intercambiar quien sabe que por quien sabe cual*/
swap();
}
}

}

void swap() //esta es la que switchea el embrollo
{
int temp; //temporizador de tiempo espacio
int tempazar1; //como el de arriba pero mas chido
int tempazar2; //y en pasado

/*guardamos al azar27 en el que es como el de mas arriba pero mas chido*/
tempazar1 = azar1;

//si esta mas repetido que el pasado…
while(tempazar1==azar1 || azar1 == azar2anterior)
{
azar1 = random(cantidad); //agarrate uno nuevecito de paquete
}

tempazar2 = azar2; //lo mismo pero mas barato

while(azar2==azar1 || azar2 == azar1anterior) //2×1
{
azar2 = random(cantidad); //4×3
}

temp = num[azar1]; //aqui esta el mero swapeo
num[azar1] = num[azar2]; //el mero merengal
num[azar2] = temp; //de los switcheos

azar1anterior = azar1; //aqui nomas guardando el pasado
azar2anterior = azar2; //para futuras generaciones
}

void main() //principio y fin del universo
{
azar1=0; //inicializacion de los desbarajustadores
azar2=1; //0, 1, 2, 3
azar1anterior=2; //o sea que el desbarajuste solo jala dea4
azar2anterior=3; //para arriba

llenar(); //quien lo manda al relleno
ordenar(); //quien lo manda a la ordenación ordenamentada

imprimir(); //pa visualizar

delete [] num; //y para no llenar de quien sabe que
num = NULL; //y de quien sabe como…
}


Comments

5 respuestas a “Random Sort”

  1. Buenazo!!

    Se ve potente, yo creo que deberías de agregar una entrada en wikipedia y ponerlo :O

  2. Jaja no tiene nada de potente, aunque si estaría chistoso pulirlo y agregarlo.

  3. Avatar de Nachopitt

    WordPress tiene algun plug-in para formatear código en las vistas de tu página? Estaría chido que lo pusieras, si existe, si planeas poner más código en tu blog.

  4. Jajajaj, le dejas el ordenamiento al azar.

  5. Jaja… buenisimo… asi deberian de enseñar programación en las escuelas… para que los dummies lo entendamos…

    i aun así lo dudo un poco….

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *