domingo, 16 de junio de 2013

Ordenamiento shaker sort

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ordenamiento_Shaker_sort
{
    class ordenamiento
    {
        public int[] shaker(int[] numeros)
        {
            int n = numeros.Length;
            int izq = 1;
            int k = n;
            int aux;
            int der = n;

            do
            {
                for (int i = der; i > izq; i--)
                {
                    if (numeros[i - 1] >= numeros[i])
                    {
                        aux = numeros[i - 1];
                        numeros[i - 1] = numeros[i];
                        numeros[i] = aux;
                        k = i;
                    }
                }
                izq = k + 1;
                for (int i = izq; i <= der; i++)
                {
                    if (numeros[i - 1] >= numeros[i])
                    {
                        aux = numeros[i - 1];
                        numeros[i - 1] = numeros[i];
                        numeros[i] = aux;
                        k = 1;
                    }
                }
                der = k - 1;
            }
            while (der >= izq);

            return numeros;
            //for (int i = 0; i < longitud; i++)
            //    Console.WriteLine(" " + numeros[i]);
        }
    }
}
=====================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ordenamiento_Shaker_sort
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] v = new int[500];
            Random r = new Random();
            Console.WriteLine("Desordenados ");
            for (int i = 0; i < v.Length; i++)
            {
                v[i] = r.Next(500) ;
                Console.WriteLine("Vector[" + i.ToString() + "] " + v[i]);
            }
            ordenamiento order = new ordenamiento();

            v = order.shaker(v);

            Console.WriteLine("Datos Ordenados ");
            for (int i = 0; i < v.Length; i++)
                Console.WriteLine(v[i]);
            Console.ReadKey();
        }
    }
}


No hay comentarios:

Publicar un comentario