Exercício 18

Java Acessos: 1433

 

Problema:

Elabore um programa em Java que leia uma lista de números fornecidos pelo usuário.

Os Números serão fornecidos em uma única linha, separados pelo caractere de espaço.

O programa deverá imprimir a lista fornecida em ordem crescente

Exemplo de entrada:   6 2 8 1 4 0 9

Exemplo de saída:   0 1 2 4 6 8 9

 

Objetivos:

Apresentar aos alunos os fundamentos de vetores, e os fundamentos de algoritmos de ordenação pelo Método Bolha (Bubble Sort)

 

/**
* Curso de Programação JAVA
*
* Exercício 18 – Ordenar uma sequência de
* números separados por
* espaços em uma String.
*
* @author         Prof. Eric Loque M. Xavier
* @version        1.0.0
* Data            05/01/2017
*
*/

import java.util.*;

public class exercicio18 {
  public static void main (String[] args){        

        Scanner ler = new Scanner(System.in);

        System.out.println("Informe uma sequência numerica");

        //Lê a sequência de fornecida pelo usuário
        String texto = ler.nextLine();

        String[] temp;

        /*
         * Converte a String em vetor
         * O delimitador utilizado foi
         * o caractere de espaço
         */

        temp = texto.split(" ");        

        //Cria um vetor de inteiros
        int vet[] = new int[temp.length];

        //Copia a lista de números para o vetor
        for(int i =0; i < temp.length ; i++)
            vet[i] = Integer.parseInt(temp[i]);

        //Método de organização Bubble Sort
        int aux;
        boolean desordenado;

        do
        {
            desordenado = false;

            for(int i =0; i < vet.length-1 ; i++){
                if(vet[i]>vet[i+1]){
                    aux=vet[i];
                    vet[i]=vet[i+1];
                    vet[i+1]=aux;
                    desordenado = true;
                }
            }
        }   
        while (desordenado);
       

        /*
         * Imprime a lista de números em
         * ordem crescente
         */
        for(int i =0; i < temp.length ; i++)
            System.out.print(vet[i]+" ");        
    }    
}