コード例 #1
0
        //CALCULA MEDIA DOS ALGORITMOS ==============================================================================
        public static Val_Analize getMedia(Val_Analize[] Anal, int Quant)
        {
            Val_Analize V = new Val_Analize();

            int Comp = 0, Mov = 0, Tam = 0;
            double Time = 0.0;

            if (Quant > 1)
            {

                for (int i = 0; i < Quant; i++)
                {
                    Comp += Anal[i].N_Comp;
                    Mov += Anal[i].N_Mov;
                    Time += Anal[i].Tempo;
                    Tam += Anal[i].Tamanho;
                }

                V.N_Comp = (Comp / Quant);
                V.N_Mov = (Mov / Quant);
                V.Tempo = (Time / Quant);
                V.Tamanho = (Tam / Quant);

            }
            else
            {
                V.N_Comp = Anal[0].N_Comp;
                V.N_Mov = Anal[0].N_Mov;
                V.Tempo = Anal[0].Tempo;
                V.Tamanho = Anal[0].Tamanho;
            }

            return V;
        }
コード例 #2
0
        //BOTAO ANALIZAR ===========================================================================
        private void button2_Click(object sender, EventArgs e)
        {
            int Index = comboBox1.SelectedIndex;

            DateTime HoraIni, HoraFim;
            TimeSpan diff;

            NArq = (int)numericUpDown1.Value;

            Val_Analize[] V_Anal = new Val_Analize[NArq];

            Val_Analize V = new Val_Analize();
            Val_Analize V_DP = new Val_Analize();

            progressBar1.Value = 0;
            progressBar1.Maximum = NArq;

            Analizador.Lista_Vet.Clear(); //LIMPA A LISTA

            switch (Index)
            {
                case 0:

                    for (int i = 0; i < NArq; i++)
                    {
                        Arquivos A = new Arquivos();
                        Analizador.Lista_Vet.Add(A.abrirArquivo(Arquivos.Local[i]));

                        Analizador.analizaLetras(Analizador.Lista_Vet[i]);

                        progressBar1.Value++;

                        HoraIni = DateTime.Now;
                        BubbleSort B = new BubbleSort();
                        B.bubbleSort(Analizador.Tam, i);
                        HoraFim = DateTime.Now;
                        diff = HoraFim.Subtract(HoraIni);
                        // Obtém milissegundos

                        V_Anal[i] = new Val_Analize();

                        V_Anal[i].Tamanho = Analizador.Tam; // pega tamanho
                        V_Anal[i].N_Comp = B.N_Comp;
                        V_Anal[i].N_Mov = B.N_Mov;
                        V_Anal[i].Tempo = diff.TotalMilliseconds;
                    }

                    V = Analizador.getMedia(V_Anal, NArq);

                    label5.Text = V.N_Mov.ToString();
                    label7.Text = V.N_Comp.ToString();
                    label13.Text = V.Tempo.ToString();
                    label22.Text = V.Tamanho.ToString();

                    V_DP = Analizador.getDesvioPadrao(V_Anal, V, NArq);

                    label11.Text = V_DP.N_Mov.ToString();
                    label17.Text = V_DP.N_Comp.ToString();
                    label20.Text = V_DP.Tempo.ToString();
                    label24.Text = V_DP.Tamanho.ToString();

                    break;

                case 1:

                    for (int i = 0; i < NArq; i++)
                    {
                        Arquivos A = new Arquivos();
                        Analizador.Lista_Vet.Add(A.abrirArquivo(Arquivos.Local[i]));

                        Analizador.analizaLetras(Analizador.Lista_Vet[i]);

                        progressBar1.Value++;

                        HoraIni = DateTime.Now;
                        HoraIni = DateTime.Now;
                        HeapSort H = new HeapSort();
                        H.heapSort(Analizador.Tam, i);
                        HoraFim = DateTime.Now;
                        diff = HoraFim.Subtract(HoraIni);
                        // Obtém milissegundos

                        V_Anal[i] = new Val_Analize();

                        V_Anal[i].Tamanho = Analizador.Tam; // pega tamanho
                        V_Anal[i].N_Comp = H.N_Comp;
                        V_Anal[i].N_Mov = H.N_Mov;
                        V_Anal[i].Tempo = diff.TotalMilliseconds;
                    }

                    V = Analizador.getMedia(V_Anal, NArq);

                    label5.Text = V.N_Mov.ToString();
                    label7.Text = V.N_Comp.ToString();
                    label13.Text = V.Tempo.ToString();
                    label22.Text = V.Tamanho.ToString();

                    V_DP = Analizador.getDesvioPadrao(V_Anal, V, NArq);

                    label11.Text = V_DP.N_Mov.ToString();
                    label17.Text = V_DP.N_Comp.ToString();
                    label20.Text = V_DP.Tempo.ToString();
                    label24.Text = V_DP.Tamanho.ToString();

                    break;

                case 2:

                    for (int i = 0; i < NArq; i++)
                    {
                        Arquivos A = new Arquivos();
                        Analizador.Lista_Vet.Add(A.abrirArquivo(Arquivos.Local[i]));

                        Analizador.analizaLetras(Analizador.Lista_Vet[i]);

                        progressBar1.Value++;

                        HoraIni = DateTime.Now;
                        HoraIni = DateTime.Now;
                        InsertionSort I = new InsertionSort();
                        I.insertionSort(Analizador.Tam, i);
                        HoraFim = DateTime.Now;
                        diff = HoraFim.Subtract(HoraIni);
                        // Obtém milissegundos

                        V_Anal[i] = new Val_Analize();

                        V_Anal[i].Tamanho = Analizador.Tam; // pega tamanho
                        V_Anal[i].N_Comp = I.N_Comp;
                        V_Anal[i].N_Mov = I.N_Mov;
                        V_Anal[i].Tempo = diff.TotalMilliseconds;
                    }

                    V = Analizador.getMedia(V_Anal, NArq);

                    label5.Text = V.N_Mov.ToString();
                    label7.Text = V.N_Comp.ToString();
                    label13.Text = V.Tempo.ToString();
                    label22.Text = V.Tamanho.ToString();

                    V_DP = Analizador.getDesvioPadrao(V_Anal, V, NArq);

                    label11.Text = V_DP.N_Mov.ToString();
                    label17.Text = V_DP.N_Comp.ToString();
                    label20.Text = V_DP.Tempo.ToString();
                    label24.Text = V_DP.Tamanho.ToString();

                    break;
                case 3:

                    for (int i = 0; i < NArq; i++)
                    {
                        Arquivos A = new Arquivos();
                        Analizador.Lista_Vet.Add(A.abrirArquivo(Arquivos.Local[i]));

                        Analizador.analizaLetras(Analizador.Lista_Vet[i]);

                        progressBar1.Value++;

                        HoraIni = DateTime.Now;
                        HoraIni = DateTime.Now;
                        KSort K = new KSort();
                        K.K_Sort(Analizador.Tam, i);
                        HoraFim = DateTime.Now;
                        diff = HoraFim.Subtract(HoraIni);
                        // Obtém milissegundos

                        V_Anal[i] = new Val_Analize();

                        V_Anal[i].Tamanho = Analizador.Tam; // pega tamanho
                        V_Anal[i].N_Comp = K.N_Comp;
                        V_Anal[i].N_Mov = K.N_Mov;
                        V_Anal[i].Tempo = diff.TotalMilliseconds;

                    }

                    V = Analizador.getMedia(V_Anal, NArq);

                    label5.Text = V.N_Mov.ToString();
                    label7.Text = V.N_Comp.ToString();
                    label13.Text = V.Tempo.ToString();
                    label22.Text = V.Tamanho.ToString();

                    V_DP = Analizador.getDesvioPadrao(V_Anal, V, NArq);

                    label11.Text = V_DP.N_Mov.ToString();
                    label17.Text = V_DP.N_Comp.ToString();
                    label20.Text = V_DP.Tempo.ToString();
                    label24.Text = V_DP.Tamanho.ToString();

                    break;

                case 4:

                   for (int i = 0; i < NArq; i++)
                    {
                        Arquivos A = new Arquivos();
                        Analizador.Lista_Vet.Add(A.abrirArquivo(Arquivos.Local[i]));

                        Analizador.analizaLetras(Analizador.Lista_Vet[i]);

                        progressBar1.Value++;

                        HoraIni = DateTime.Now;
                        HoraIni = DateTime.Now;
                        MergeSort M = new MergeSort();
                        M.margeSort(Analizador.Tam, i);
                        HoraFim = DateTime.Now;
                        diff = HoraFim.Subtract(HoraIni);
                        // Obtém milissegundos

                        V_Anal[i] = new Val_Analize();

                        V_Anal[i].Tamanho = Analizador.Tam; // pega tamanho
                        V_Anal[i].N_Comp = M.N_Comp;
                        V_Anal[i].N_Mov = M.N_Mov;
                        V_Anal[i].Tempo = diff.TotalMilliseconds;
                    }

                    V = Analizador.getMedia(V_Anal, NArq);

                    label5.Text = V.N_Mov.ToString();
                    label7.Text = V.N_Comp.ToString();
                    label13.Text = V.Tempo.ToString();
                    label22.Text = V.Tamanho.ToString();

                    V_DP = Analizador.getDesvioPadrao(V_Anal, V, NArq);

                    label11.Text = V_DP.N_Mov.ToString();
                    label17.Text = V_DP.N_Comp.ToString();
                    label20.Text = V_DP.Tempo.ToString();
                    label24.Text = V_DP.Tamanho.ToString();

                    break;

                case 5:

                    for (int i = 0; i < NArq; i++)
                    {
                        Arquivos A = new Arquivos();
                        Analizador.Lista_Vet.Add(A.abrirArquivo(Arquivos.Local[i]));

                        Analizador.analizaLetras(Analizador.Lista_Vet[i]);

                        progressBar1.Value++;

                        HoraIni = DateTime.Now;
                        HoraIni = DateTime.Now;
                        NewSortMiddlePivot NS = new NewSortMiddlePivot();
                        NS.newSortMiddlePivot(Analizador.Tam, i);
                        HoraFim = DateTime.Now;
                        diff = HoraFim.Subtract(HoraIni);
                        // Obtém milissegundos

                        V_Anal[i] = new Val_Analize();

                        V_Anal[i].Tamanho = Analizador.Tam; // pega tamanho
                        V_Anal[i].N_Comp = NS.N_Comp;
                        V_Anal[i].N_Mov = NS.N_Mov;
                        V_Anal[i].Tempo = diff.TotalMilliseconds;
                    }

                    V = Analizador.getMedia(V_Anal, NArq);

                    label5.Text = V.N_Mov.ToString();
                    label7.Text = V.N_Comp.ToString();
                    label13.Text = V.Tempo.ToString();
                    label22.Text = V.Tamanho.ToString();

                    V_DP = Analizador.getDesvioPadrao(V_Anal, V, NArq);

                    label11.Text = V_DP.N_Mov.ToString();
                    label17.Text = V_DP.N_Comp.ToString();
                    label20.Text = V_DP.Tempo.ToString();
                    label24.Text = V_DP.Tamanho.ToString();

                    break;

                case 6:

                    for (int i = 0; i < NArq; i++)
                    {
                        Arquivos A = new Arquivos();
                        Analizador.Lista_Vet.Add(A.abrirArquivo(Arquivos.Local[i]));

                        Analizador.analizaLetras(Analizador.Lista_Vet[i]);

                        progressBar1.Value++;

                        HoraIni = DateTime.Now;
                        HoraIni = DateTime.Now;
                        NewSortLeftPivot NL = new NewSortLeftPivot();
                        NL.newSortLeftPivot(Analizador.Tam, i);
                        HoraFim = DateTime.Now;
                        diff = HoraFim.Subtract(HoraIni);
                        // Obtém milissegundos

                        V_Anal[i] = new Val_Analize();

                        V_Anal[i].Tamanho = Analizador.Tam; // pega tamanho
                        V_Anal[i].N_Comp = NL.N_Comp;
                        V_Anal[i].N_Mov = NL.N_Mov;
                        V_Anal[i].Tempo = diff.TotalMilliseconds;
                    }

                    V = Analizador.getMedia(V_Anal, NArq);

                    label5.Text = V.N_Mov.ToString();
                    label7.Text = V.N_Comp.ToString();
                    label13.Text = V.Tempo.ToString();
                    label22.Text = V.Tamanho.ToString();

                    V_DP = Analizador.getDesvioPadrao(V_Anal, V, NArq);

                    label11.Text = V_DP.N_Mov.ToString();
                    label17.Text = V_DP.N_Comp.ToString();
                    label20.Text = V_DP.Tempo.ToString();
                    label24.Text = V_DP.Tamanho.ToString();

                    break;

                case 7:

                    for (int i = 0; i < NArq; i++)
                    {
                        Arquivos A = new Arquivos();
                        Analizador.Lista_Vet.Add(A.abrirArquivo(Arquivos.Local[i]));

                        Analizador.analizaLetras(Analizador.Lista_Vet[i]);

                        progressBar1.Value++;

                        HoraIni = DateTime.Now;
                        HoraIni = DateTime.Now;
                        QuickSort Q = new QuickSort();
                        Q.quickSort(Analizador.Tam, i);
                        HoraFim = DateTime.Now;
                        diff = HoraFim.Subtract(HoraIni);
                        // Obtém milissegundos

                        V_Anal[i] = new Val_Analize();

                        V_Anal[i].Tamanho = Analizador.Tam; // pega tamanho
                        V_Anal[i].N_Comp = Q.N_Comp;
                        V_Anal[i].N_Mov = Q.N_Mov;
                        V_Anal[i].Tempo = diff.TotalMilliseconds;
                    }

                    V = Analizador.getMedia(V_Anal, NArq);

                    label5.Text = V.N_Mov.ToString();
                    label7.Text = V.N_Comp.ToString();
                    label13.Text = V.Tempo.ToString();
                    label22.Text = V.Tamanho.ToString();

                    V_DP = Analizador.getDesvioPadrao(V_Anal, V, NArq);

                    label11.Text = V_DP.N_Mov.ToString();
                    label17.Text = V_DP.N_Comp.ToString();
                    label20.Text = V_DP.Tempo.ToString();
                    label24.Text = V_DP.Tamanho.ToString();

                    break;

                case 8:

                    for (int i = 0; i < NArq; i++)
                    {
                        Arquivos A = new Arquivos();
                        Analizador.Lista_Vet.Add(A.abrirArquivo(Arquivos.Local[i]));

                        Analizador.analizaLetras(Analizador.Lista_Vet[i]);

                        progressBar1.Value++;

                        HoraIni = DateTime.Now;
                        HoraIni = DateTime.Now;
                        SelectionSort SL = new SelectionSort();
                        SL.selectionSort(Analizador.Tam, i);
                        HoraFim = DateTime.Now;
                        diff = HoraFim.Subtract(HoraIni);
                        // Obtém milissegundos

                        V_Anal[i] = new Val_Analize();

                        V_Anal[i].Tamanho = Analizador.Tam; // pega tamanho
                        V_Anal[i].N_Comp = SL.N_Comp;
                        V_Anal[i].N_Mov = SL.N_Mov;
                        V_Anal[i].Tempo = diff.TotalMilliseconds;
                    }

                    V = Analizador.getMedia(V_Anal, NArq);

                    label5.Text = V.N_Mov.ToString();
                    label7.Text = V.N_Comp.ToString();
                    label13.Text = V.Tempo.ToString();
                    label22.Text = V.Tamanho.ToString();

                    V_DP = Analizador.getDesvioPadrao(V_Anal, V, NArq);

                    label11.Text = V_DP.N_Mov.ToString();
                    label17.Text = V_DP.N_Comp.ToString();
                    label20.Text = V_DP.Tempo.ToString();
                    label24.Text = V_DP.Tamanho.ToString();

                    break;

                case 9:

                    for (int i = 0; i < NArq; i++)
                    {
                        Arquivos A = new Arquivos();
                        Analizador.Lista_Vet.Add(A.abrirArquivo(Arquivos.Local[i]));

                        Analizador.analizaLetras(Analizador.Lista_Vet[i]);

                        progressBar1.Value++;

                        HoraIni = DateTime.Now;
                        HoraIni = DateTime.Now;
                        ShakerSort SH = new ShakerSort();
                        SH.shakerSort(Analizador.Tam, i);
                        HoraFim = DateTime.Now;
                        diff = HoraFim.Subtract(HoraIni);
                        // Obtém milissegundos

                        V_Anal[i] = new Val_Analize();

                        V_Anal[i].Tamanho = Analizador.Tam; // pega tamanho
                        V_Anal[i].N_Comp = SH.N_Comp;
                        V_Anal[i].N_Mov = SH.N_Mov;
                        V_Anal[i].Tempo = diff.TotalMilliseconds;
                    }

                    V = Analizador.getMedia(V_Anal, NArq);

                    label5.Text = V.N_Mov.ToString();
                    label7.Text = V.N_Comp.ToString();
                    label13.Text = V.Tempo.ToString();
                    label22.Text = V.Tamanho.ToString();

                    V_DP = Analizador.getDesvioPadrao(V_Anal, V, NArq);

                    label11.Text = V_DP.N_Mov.ToString();
                    label17.Text = V_DP.N_Comp.ToString();
                    label20.Text = V_DP.Tempo.ToString();
                    label24.Text = V_DP.Tamanho.ToString();

                    break;

                case 10:

                    for (int i = 0; i < NArq; i++)
                    {
                        Arquivos A = new Arquivos();
                        Analizador.Lista_Vet.Add(A.abrirArquivo(Arquivos.Local[i]));

                        Analizador.analizaLetras(Analizador.Lista_Vet[i]);

                        progressBar1.Value++;

                        HoraIni = DateTime.Now;
                        HoraIni = DateTime.Now;
                        ShellSort SS = new ShellSort();
                        SS.shellSort(Analizador.Tam, i);
                        HoraFim = DateTime.Now;
                        diff = HoraFim.Subtract(HoraIni);
                        // Obtém milissegundos

                        V_Anal[i] = new Val_Analize();

                        V_Anal[i].Tamanho = Analizador.Tam; // pega tamanho
                        V_Anal[i].N_Comp = SS.N_Comp;
                        V_Anal[i].N_Mov = SS.N_Mov;
                        V_Anal[i].Tempo = diff.TotalMilliseconds;
                    }

                    V = Analizador.getMedia(V_Anal, NArq);

                    label5.Text = V.N_Mov.ToString();
                    label7.Text = V.N_Comp.ToString();
                    label13.Text = V.Tempo.ToString();
                    label22.Text = V.Tamanho.ToString();

                    V_DP = Analizador.getDesvioPadrao(V_Anal, V, NArq);

                    label11.Text = V_DP.N_Mov.ToString();
                    label17.Text = V_DP.N_Comp.ToString();
                    label20.Text = V_DP.Tempo.ToString();
                    label24.Text = V_DP.Tamanho.ToString();

                    break;
            }

            button3.Visible = true;
            button4.Visible = true;
        }
コード例 #3
0
        //CALCULA O DESVIO PADRAO DOS ALGORITMOS ==========================================================================
        public static Val_Analize getDesvioPadrao(Val_Analize[] Anal, Val_Analize Med, int Quant)
        {
            Val_Analize V_DP = new Val_Analize();

            double Comp = 0, Mov = 0, Tam = 0;
            double Time = 0.0;

            if (Quant > 1)
            {

                for (int i = 0; i < Quant; i++)
                {
                    Comp += (Anal[i].N_Comp - Med.N_Comp) * (Anal[i].N_Comp - Med.N_Comp);
                    Mov += (Anal[i].N_Mov - Med.N_Mov) * (Anal[i].N_Mov - Med.N_Mov);
                    Time += (Anal[i].Tempo - Med.Tempo) * (Anal[i].Tempo - Med.Tempo);
                    Tam += (Anal[i].Tamanho - Med.Tamanho) * (Anal[i].Tamanho - Med.Tamanho);
                }

                V_DP.N_Comp = (int)Math.Sqrt(Comp / (Quant - 1));
                V_DP.N_Mov = (int)Math.Sqrt(Mov / (Quant - 1));
                V_DP.Tempo = Math.Sqrt(Time / (Quant - 1));
                V_DP.Tamanho = (int)Math.Sqrt(Tam / (Quant - 1));

            }
            else
            {
                V_DP.N_Comp = 0;
                V_DP.N_Mov = 0;
                V_DP.Tempo = 0;
                V_DP.Tamanho = 0;
            }

            return V_DP;
        }