Created
August 12, 2011 00:22
-
-
Save carlossaraiva/1141160 to your computer and use it in GitHub Desktop.
Exercício 03 - Segundo maior elemento de um vetor
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// @author Carlos Saraiva | |
import java.util.*; | |
public class SegundoMaior { | |
public static void main (String args[]) | |
{ | |
int n; // variável usada para determinar o tamanho do vetor, e que será¡ usada para determinar o tamanho do loop | |
int aux; //variável para auxiliar a troca no booble sort. | |
Scanner leitura = new Scanner(System.in); | |
System.out.println("Digite o tamanho do vetor"); | |
n = leitura.nextInt(); | |
/*declaraçãodo nosso vetor. Vetores em java inicia com indice 0 | |
Aqui é uma variável (n), assim o usuário quem determinará seu tamanho*/ | |
int vetor[] = new int[n]; | |
/* Essa parte é um truque (gambiarra) para fazer que o usuario pense que | |
està digitando o valor para o vetor de indice 1, mas no fundo em java, | |
todo vetor se inicia com o Ãndice 0 (zero). | |
*/ | |
n = n - 1; | |
for(int i = 0; i <= n; i++) | |
{ | |
System.out.println("Digite o valor do elemento " + (i+1) + " do vetor:"); | |
vetor[i] = leitura.nextInt(); | |
} | |
/*Início do Booble Sort. A mecânica é simples: eu comparo dois valores. Se um | |
deles for maior que o outro, troco de posição, caso contrário, nada faz. | |
* Para conseguir tal feito, é necessário que a estrutura se repita 'n²-1' vezes (n no caso o tamanho do vetor. | |
pois é necessário comparar cada valor metodicamente, até se encaixar. Ou | |
abstraindo a idéia, as bolhas de ar subirem até o topo de um copo d'agua. | |
*/ | |
for (int i = 0; i <= n; i++) | |
{ | |
for (int j = 0; j <= (n-1); j++) | |
{ | |
if (vetor[j] > vetor[j+1]) | |
{ | |
aux = vetor[j]; | |
vetor[j] = vetor[j+1]; | |
vetor[j+1] = aux; | |
} | |
} | |
} | |
//Nessa parte inicia a impressão dos valores já ordenados na estrutura anterior. | |
System.out.println("O valores ordenados dos vetores ficarão assim:"); | |
for (int i = 0; i <= n; i++) | |
{ | |
System.out.println("Elemento: " + (i+ 1) + " Valor: " + vetor[i]); | |
} | |
/* Encontrar o segundo maior valor fica fácil, é apenas pegar o valor "n" de | |
elementos do vetor e subtrair 1 do indice. Se temos um vetor de 4 elementos, | |
apos sua ordenação teremos no indice 3 do vetor o segundo maior elemento. | |
System.out.println("O segundo maior valor portanto será:" + vetor[n-1]); | |
*/ | |
System.out.println("O segundo maior elemento será portanto:" + vetor[n-1]); | |
System.out.println("O segundo maior elemento será portanto:" + vetor[n-1]); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment