//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; }
//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; }
//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; }