Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }