public static void QuickSortByCharField(Model_Data[] data, int first, int last) { int up = last, down = first, middle; char rep, pivot; middle = (int)((first + last) / 2); pivot = data[middle].Grupo; while (down <= up) { //Comp Original : data[down].Grupo < pivot while (Model_Data.GreaterThanString(pivot.ToString(), data[down].Grupo.ToString())) { down++; } while (Model_Data.GreaterThanString(data[up].Grupo.ToString(), pivot.ToString())) { up--; } if (down < up) { rep = data[down].Grupo; data[down++].Grupo = data[up].Grupo; data[up--].Grupo = rep; } else { if (down == up) { down++; up--; } } } if (up > first) { QuickSortByCharField(data, first, up); } if (down < last) { QuickSortByCharField(data, down, last); } }
public static void QuickSortByBoolField(Model_Data[] data, int first, int last) { int up = last, down = first, middle; bool rep, pivot; middle = (int)((first + last) / 2); pivot = data[middle].Disponibilidade; while (down <= up) { //Comp Original : data[down].Valor < pivot while (Model_Data.GreaterThanBool(pivot, data[down].Disponibilidade)) { down++; } while (Model_Data.GreaterThanBool(data[up].Disponibilidade, pivot)) { up--; } if (down < up) { rep = data[down].Disponibilidade; data[down++].Disponibilidade = data[up].Disponibilidade; data[up--].Disponibilidade = rep; } else { if (down == up) { down++; up--; } } } if (up > first) { QuickSortByBoolField(data, first, up); } if (down < last) { QuickSortByBoolField(data, down, last); } }
static void BuildAnalysis(int VetorLenght, int Iteracao) { var RadomAsciiArr = repetiveisRandom(VetorLenght * 4, 65, 91); var RadomAsciiArrCh = repetiveisRandom(VetorLenght, 65, 91); var ArrTitulo = TransformToString(RadomAsciiArr, 4); var ArrValor = doubleRandom(VetorLenght); var ArrDisponibilidade = repetiveisRandom(VetorLenght, 0, 2); var ArrIdade = intRandom(VetorLenght); var ArrGrupo = TransformToString(RadomAsciiArrCh, 1); Model_Data[] Data = new Model_Data[VetorLenght]; for (int i = 0; i < VetorLenght; i++) { var DtPass = new Model_Data() { Titulo = ArrTitulo[i], Valor = (float)ArrValor[i], Disponibilidade = Convert.ToBoolean(Convert.ToInt16(ArrDisponibilidade[i])), Idade = ArrIdade[i], Grupo = char.Parse(ArrGrupo[i]), }; Data[i] = DtPass; } string BaseSource = @"C:\Users\Vinícius\Desktop\" + "APS_4sem"; Directory.CreateDirectory(BaseSource + "\\" + Iteracao + "Iteracao"); Directory.CreateDirectory(BaseSource + "\\" + Iteracao + "Iteracao" + "\\" + VetorLenght + " Objects"); string BBSource = Path.Combine(BaseSource + "\\" + Iteracao + "Iteracao" + "\\" + VetorLenght + " Objects"); Directory.CreateDirectory(BBSource + "\\BBsort"); Analysis.BubbleAnalysis(Data, BBSource); string MGSource = Path.Combine(BaseSource + "\\" + Iteracao + "Iteracao" + "\\" + VetorLenght + " Objects"); Directory.CreateDirectory(MGSource + "\\MGsort"); Analysis.MergeAnalysis(Data, MGSource); string QKSource = Path.Combine(BaseSource + "\\" + Iteracao + "Iteracao" + "\\" + VetorLenght + " Objects"); Directory.CreateDirectory(QKSource + "\\QKsort"); Analysis.QuickAnalysis(Data, QKSource); }
private static List <Model_Data> ForceToLostTheReference(IEnumerable <Model_Data> Data) { var Dt = new List <Model_Data>(); foreach (Model_Data Dtn in Data) { var DtPass = new Model_Data() { Titulo = Dtn.Titulo, Valor = Dtn.Valor, Disponibilidade = Dtn.Disponibilidade, Idade = Dtn.Idade, Grupo = Dtn.Grupo }; Dt.Add(DtPass); } return(Dt); }