public override void TestCorrectoAscendenteInt1000() { SelecciónInt = new Selección(Orden.Ascendente); datosInt1000.insertaAleatorio(); SelecciónInt.Ordenar((int[])datosInt1000.Vector); for (int i = 1; i < datosInt1000.Vector.Length; i++) { Assert.True((int)datosInt1000.Vector.GetValue(i) >= (int)datosInt1000.Vector.GetValue(i - 1)); } }
/// <summary> /// Hilo para la ordenación en función de los criterios establecidos. /// </summary> public void HiloOrdena() { Ordenación ord; NanoTemporizador nano = new NanoTemporizador(); if (datosOrdenar.Algoritmo.CompareTo(Algoritmo.Insercion)==0) { for (int i = 0; i < listas.Count; i++) { if (listas.ElementAt(i).ordenado.CompareTo(Ordenado.No) == 0) { ord = new Inserción(datosOrdenar.Criterio); nano.Start(); listas.ElementAt(i).vectorD.Vector.CopyTo(listas.ElementAt(i).vectorO.Vector, 0); ord.Ordenar((int[])listas.ElementAt(i).vectorO.Vector); nano.Stop(); //asignar los valores derivados de la ordenacion a la lista. Lista aux = listas.ElementAt(i); aux.nComparaciones = ord.NComparaciones; aux.nIntercambios = ord.NIntercambios; aux.tiempo = nano.ElapsedMilliseconds; aux.ordenado = Ordenado.Si; System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (Action)delegate() { listas.RemoveAt(i); listas.Insert(aux.id, aux); }); } } } else if (datosOrdenar.Algoritmo.CompareTo(Algoritmo.Seleccion) == 0) { for (int i = 0; i < listas.Count; i++) { if (listas.ElementAt(i).ordenado.CompareTo(Ordenado.No) == 0) { ord = new Selección(datosOrdenar.Criterio); nano.Start(); listas.ElementAt(i).vectorD.Vector.CopyTo(listas.ElementAt(i).vectorO.Vector, 0); ord.Ordenar((int[])listas.ElementAt(i).vectorO.Vector); nano.Stop(); //falta capturar los tiempos de ordenacion Lista aux = listas.ElementAt(i); aux.nComparaciones = ord.NComparaciones; aux.nIntercambios = ord.NIntercambios; aux.tiempo = nano.ElapsedMilliseconds; aux.ordenado = Ordenado.Si; System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (Action)delegate() { listas.RemoveAt(i); listas.Insert(aux.id, aux); }); } } } else { for (int i = 0; i < listas.Count; i++) { if (listas.ElementAt(i).ordenado.CompareTo(Ordenado.No) == 0) { ord = new QuickSort(datosOrdenar.Criterio); nano.Start(); listas.ElementAt(i).vectorD.Vector.CopyTo(listas.ElementAt(i).vectorO.Vector, 0); ord.Ordenar((int[])listas.ElementAt(i).vectorO.Vector); nano.Stop(); //falta capturar los tiempos de ordenacion Lista aux = listas.ElementAt(i); aux.nComparaciones = ord.NComparaciones; aux.nIntercambios = ord.NIntercambios; aux.tiempo = nano.ElapsedMilliseconds; aux.ordenado = Ordenado.Si; System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (Action)delegate() { listas.RemoveAt(i); listas.Insert(aux.id, aux); }); } } } refreshGrid(); visibilidadBarra_Final(); }
public override void nComparacionesVectoresIntDescendente() { SelecciónInt = new Selección(Orden.Descendente); datosInt10.insertaAleatorio(); SelecciónInt.Ordenar((int[])datosInt10.Vector); int numComparaciones10 = SelecciónInt.NComparaciones; datosInt1000.insertaAleatorio(); SelecciónInt.Ordenar((int[])datosInt1000.Vector); int numComparaciones1000 = SelecciónInt.NComparaciones; Assert.True(numComparaciones1000 > numComparaciones10); }
public override void nIntercambiosVectorOrdenadoDescendenteInt() { int[] vectorOrdenado = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 }; SelecciónInt = new Selección(Orden.Descendente); SelecciónInt.Ordenar(vectorOrdenado); Assert.True(SelecciónInt.NIntercambios == 0); }
public override void nIntercambiosVectorOrdenadoAscendenteInt() { int[] vectorOrdenado = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; SelecciónInt = new Selección(Orden.Ascendente); SelecciónInt.Ordenar(vectorOrdenado); Assert.True(SelecciónInt.NIntercambios == 0); }
public override void TestOrdenaInversoDescToAscInt() { SelecciónInt = new Selección(Orden.Descendente); datosIntDescendente.insertaAleatorio(); SelecciónInt.Ordenar((int[])datosIntDescendente.Vector); SelecciónInt.Orden = Orden.Ascendente; SelecciónInt.Ordenar((int[])datosIntDescendente.Vector); for (int i = 1; i < datosIntDescendente.Vector.Length; i++) { Assert.True((int)datosIntDescendente.Vector.GetValue(i) >= (int)datosIntDescendente.Vector.GetValue(i - 1)); } }