1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Problemas quando exibe a ordenação.

Pessoal o problema é o seguinte, esta exibindo 3 vezes o mesmo texto ordenado, é que coloquei para exibir em um laço de repetição porque não exibi String, mas não consegui achar o erro, coloquei o código abaixo. .

/* Armazenar o arquivo em arrayList */
List<String[]> lista = new ArrayList<>();

FileReader ent = new FileReader("arquivo.txt");
BufferedReader br = new BufferedReader(ent);

String linha;
while ((linha = br.readLine()) != null) {
    String[] registro = linha.split(" ");
    lista.add(registro);

    Scanner entrada = new Scanner(System.in);

    // Menu
    int opção;

    System.out.println("============================");
    System.out.println("|          MENU            |");
    System.out.println("============================");
    System.out.println(" 1 Bubble Sort  ");
    System.out.println(" 2 Selection Sort  ");
    System.out.println(" 3 Insertion Sort  ");
    System.out.println("============================");
    System.out.print("Escolha sua Opção: ");

    opção = entrada.nextInt();

    switch (opção) {
        case 1:
            // Ordenação
            long tempoInicial = System.currentTimeMillis();

            for (int i = 0; i <= registro.length; i++) {
                for (int c = i + 1; c < registro.length; c++) {
                    int compareTo = registro[i].compareTo(registro[c]);

                    if (compareTo > 0) {
                        String temp = registro[i];
                        registro[i] = registro[c];
                        registro[c] = temp;
                    }
                }
            }

            for (String string : registro) {
                for (String valor : registro) {
                    System.out.println(valor);
                }
            }

            long tempoFinal = System.currentTimeMillis();
            System.out.print("TEMPO DE EXECUÇÃO DO BUBLLE SORT:");
            System.out.printf("%.3f ms%n", (tempoFinal - tempoInicial) / 10000d);

            break;

        case 2:
            // comandos
            break;

        case 3:
            // comando
            break;
    }
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java orientação-a-objetos ou faça a sua própria pergunta.