• Nenhum resultado encontrado

Relatorio Exerc 74 78

N/A
N/A
Protected

Academic year: 2021

Share "Relatorio Exerc 74 78"

Copied!
12
0
0

Texto

(1)

USJT – 2013 – ALGESD – 2ASIN – ALGORITMO E ESTRUTURA DE DADOS Professor: Robson Calvetti

Aula: Laboratório 01

Assunto: Comparação de métodos de ordenação Relatório Dados do Aluno

R.A.: 201212079

Nome: Mariana Muniz de Lima 1. Introdução:

Este relatório refere-se ao desenvolvimento e práticas de programação do conceito de métodos de ordenação quick sort, manipulada através da linguagem Java, através de exercícios disponibilizados pelo professor.

2. Objetivo:

Solucionar, a partir do exercício proposto, conforme arquivo PDF postado pe lo docente (vide arquvio .pdf – USJT-2013-SI-ALGESD-Lista de Exercícios do 1° Semestre –

Página 11 – Exercícios 74 ao 78)

3. Procedimentos Experimentais: 3.1. Materiais: IDE Jgrasp

3.2. Equipamentos: Computador Desktop.

3.3. Métodos: Utilização do conceito ordenação quick sort.

4. Resultados e Discussões:

Resultados sobre o assunto em questão vide anexo.

5. Conclusão:

A partir dos algoritmos resolvidos foi possível constatar que o método de ordenação quick sort é mais eficaz se comparado com o bubble sort ou selection sort.

(2)

public class Exerc_74 {

static char vetor[] = new char [5];

public static void main (String args []) { DigitaVetor(); OrdenacaoQuickSortChar(vetor, 0, vetor.length-1); ImprimeVetor(vetor); }

public static void DigitaVetor() {

String palavra = "";

palavra = JOptionPane.showInputDialog(null,"Digite uma palavra de 5 caracteres:");

vetor = palavra.substring(0, 5).toCharArray(); }

public static void OrdenacaoQuickSortChar(char vet[], int baixo, int alto)

{ int pv, b,a; char pivot; b= baixo; a =alto; pivot= vet[baixo]; while(baixo < alto) {

while((vet[alto] >= pivot) && (baixo < alto)) alto--; if(baixo != alto) { vet[baixo]= vet[alto]; baixo++; }

while((vet[baixo] <= pivot) && (baixo < alto)) baixo++; if(baixo != alto) { vet[alto]=vet[baixo]; alto--; } } vet[baixo] = pivot;

(3)

pv = baixo; baixo = b; alto = a; if(baixo < pv ) { OrdenacaoQuickSortChar(vet, baixo, pv-1); } if(alto > pv ) { OrdenacaoQuickSortChar(vet, pv+1,alto); } }

public static void ImprimeVetor(char vet[]) {

for ( int i = 0 ; i < vet.length ; i ++) { System.out.println("" + vet[i]); } } }

(4)

static int vetor[]; static int tam;

public static void main (String args[]) { ConfiguraVetor(); DigitaVetor(); OrdenacaoQuickSortInt(vetor, 0, vetor.length-1); ImprimeVetor(vetor); System.exit(0); }

public static void ConfiguraVetor() {

tam =

Integer.parseInt(JOptionPane.showInputDialog(null,"Informe o tamanho do vetor:"));

vetor = new int [tam]; }

public static void DigitaVetor() {

for(int i = 0; i<vetor.length; i++) { vetor[i] = Integer.parseInt(JOptionPane.showInputDialog(null,"Informe o "+(i+1)+"o valor:")); } }

public static void OrdenacaoQuickSortInt(int vet[], int baixo, int alto)

{ int pv, b,a; int pivot; b= baixo; a =alto; pivot= vet[baixo]; while(baixo < alto) {

while((vet[alto] >= pivot) && (baixo < alto)) alto--;

if(baixo != alto) {

(5)

baixo++; }

while((vet[baixo] <= pivot) && (baixo < alto)) baixo++; if(baixo != alto) { vet[alto]=vet[baixo]; alto--; } } vet[baixo] = pivot; pv = baixo; baixo = b; alto = a; if(baixo < pv ) { OrdenacaoQuickSortInt(vet, baixo, pv-1); } if(alto > pv ) { OrdenacaoQuickSortInt(vet, pv+1,alto); } }

public static void ImprimeVetor(int vet[]) {

for ( int i = 0 ; i < vet.length ; i ++) { System.out.println("" + vet[i]); } } }

(6)

static double vetor[] = new double [20];

public static void main (String args[]) { DigitaVetor(); OrdenacaoQuickSortInt(vetor, 0, vetor.length-1); ImprimeVetor(vetor); System.exit(0); }

public static void DigitaVetor() {

for(int i = 0; i<vetor.length; i++) { vetor[i] = Double.parseDouble(JOptionPane.showInputDialog(null,"Informe o "+(i+1)+"o valor:")); } }

public static void OrdenacaoQuickSortInt(double vet[], int baixo, int alto)

{ int pv, b,a; double pivot; b= baixo; a =alto; pivot= vet[baixo]; while(baixo < alto) {

while((vet[alto] >= pivot) && (baixo < alto)) alto--; if(baixo != alto) { vet[baixo]= vet[alto]; baixo++; }

while((vet[baixo] <= pivot) && (baixo < alto)) baixo++; if(baixo != alto) { vet[alto]=vet[baixo]; alto--; } }

(7)

vet[baixo] = pivot; pv = baixo; baixo = b; alto = a; if(baixo < pv ) { OrdenacaoQuickSortInt(vet, baixo, pv-1); } if(alto > pv ) { OrdenacaoQuickSortInt(vet, pv+1,alto); } }

public static void ImprimeVetor(double vet[]) {

for ( int i = 0 ; i < vet.length ; i ++) { System.out.println("" + vet[i]); } } }

(8)

static char vetor[] = new char [5]; static int comparacao = 0;

static int atribuicao = 0;

public static void main (String args []) { DigitaVetor(); OrdenacaoQuickSortChar(vetor, 0, vetor.length-1); ImprimeVetor(vetor); }

public static void DigitaVetor() {

String palavra = "";

palavra = JOptionPane.showInputDialog(null,"Digite uma palavra de 5 caracteres:");

vetor = palavra.substring(0, 5).toCharArray(); }

public static void OrdenacaoQuickSortChar(char vet[], int baixo, int alto)

{ int pv, b,a; char pivot; b= baixo; a = alto; pivot = vet[baixo]; atribuicao += 3; while(baixo < alto) { comparacao +=1;

while((vet[alto] >= pivot) && (baixo < alto)) { alto--; comparacao += 1; } if(baixo != alto) { vet[baixo]= vet[alto]; baixo++; comparacao+= 1;

(9)

atribuicao += 1; }

while((vet[baixo] <= pivot) && (baixo < alto)) { baixo++; comparacao += 1; } if(baixo != alto) { vet[alto]=vet[baixo]; alto--; comparacao += 1; atribuicao += 1; } } vet[baixo] = pivot; pv = baixo; baixo = b; alto = a; atribuicao += 4; if(baixo < pv ) { OrdenacaoQuickSortChar(vet, baixo, pv-1); comparacao += 1; } if(alto > pv ) { OrdenacaoQuickSortChar(vet, pv+1,alto); comparacao += 1; } }

public static void ImprimeVetor(char vet[]) {

for ( int i = 0 ; i < vet.length ; i ++) {

System.out.println("" + vet[i]); }

JOptionPane.showMessageDialog(null,"Quantidade de atribuicoes: "+ atribuicao+"\nQuantidade de comparacoes: "+comparacao); } }

(10)

static int indice; static char busca;

public static void main (String args []) { DigitaVetor(); OrdenacaoQuickSortChar(vetor, 0, vetor.length-1); Busca(); indice = BuscaBinariaRecursiva(vetor,0,vetor.length -1, busca);

if(( indice >= 0 )&& (indice <= vetor.length)) {

JOptionPane.showMessageDialog(null,"Caracter encontrado na posicao "+(indice+1));

} else {

JOptionPane.showMessageDialog(null,"Caracter nao encontrado!!"," Nao encontrado!",1);

} }

public static void DigitaVetor() {

String palavra = "";

palavra = JOptionPane.showInputDialog(null,"Digite uma palavra de 10 caracteres:");

vetor = palavra.substring(0, 10).toCharArray(); }

public static void OrdenacaoQuickSortChar(char vet[], int baixo, int alto)

{ int pv, b,a; char pivot; b= baixo; a =alto; pivot= vet[baixo]; while(baixo < alto) {

while((vet[alto] >= pivot) && (baixo < alto)) alto--;

(11)

if(baixo != alto) {

vet[baixo]= vet[alto]; baixo++;

}

while((vet[baixo] <= pivot) && (baixo < alto)) baixo++; if(baixo != alto) { vet[alto]=vet[baixo]; alto--; } } vet[baixo] = pivot; pv = baixo; baixo = b; alto = a; if(baixo < pv ) { OrdenacaoQuickSortChar(vet, baixo, pv-1); } if(alto > pv ) { OrdenacaoQuickSortChar(vet, pv+1,alto); } }

public static void Busca() {

String palavra = "";

palavra = JOptionPane.showInputDialog(null,"Informe o caracter a ser procurado:");

busca = palavra.charAt(0); }

public static int BuscaBinariaRecursiva(char vet[], int inicio, int fim, char procurado)

{ int meio; if(inicio <= fim) { meio=(inicio+fim)/2; if(procurado < vetor[meio])

(12)

} else { return meio; } } else return -1; } }

Referências

Documentos relacionados

Este estudo, assim, aproveitou uma estrutura útil (categorização) para organizar dados o que facilitou a sistematização das conclusões. Em se tratando do alinhamento dos

Avaliar, quanto à adesão de suas camadas, filmes coextrusados de PET/PEBD e PET/EVOH/PEBD usados na fabricação de embalagens para alimentos, assim como estudar as interfaces e

Os principais passos para o planejamento do processo estão baseados no fatiamento dos modelos 3D (geração das camadas), no posicionamento da peça na mesa de trabalho e

Quando a aplicação das vacinas 10 ou 13 não tiver sido iniciada aos dois meses de vida, o esquema de sua administração varia conforme a idade em que a vacinação for iniciada:

Esta realidade exige uma abordagem baseada mais numa engenharia de segu- rança do que na regulamentação prescritiva existente para estes CUA [7], pelo que as medidas de segurança

Os objetivos específicos são: Verificar os artigos que foram aceitos no congresso ANPCONT e os mesmos veiculados em periódicos da área contábil no período de 2007 a 2012; Identificar

Declaro ser esclarecido e estar de acordo com os seguintes pontos: O trabalho O conhecimento dos enfermeiros da Unidades Básicas de Saúde da Família do município de Esperança -

a. Ao respeito dos direitos ou da reputação de outrem; b. À salvaguarda da segurança nacional, da ordem pública, da saúde e da moral públicas. Depreende-se disso que,