Skip to content

Instantly share code, notes, and snippets.

@carlossaraiva
Created August 12, 2011 00:22
Show Gist options
  • Save carlossaraiva/1141160 to your computer and use it in GitHub Desktop.
Save carlossaraiva/1141160 to your computer and use it in GitHub Desktop.
Exercício 03 - Segundo maior elemento de um vetor
// @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