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

Preciso de ajuda para aumentar o desempenho do desse codigo

Como faço para que esse código execute mais rápido, ele esta executando certinho, só preciso que execute mais rápido.

import java.util.Scanner;
public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n; 
        int m[][] = new int[100][100];
        do{
            do{
                n = sc.nextInt();
            }while(n < 0 || n > 100);

            int p = 1;
            int ma = n-1, me = 0;
            while(me < n/2+0.5){
                for(int i = p -1; i < ma+1; i++){
                    m[me][i] = p;
                    m[i][ma] = p;
                    m[i][me] = p;
                    m[ma][i] = p;
                }
                me++;
                ma--;
                p++;
            }
            for (int i = 0; i < n; i++) {
                for (int j = 0; j < n; j++) {
                    if (n == j+1) {
                        System.out.println("   " + m[i][j]);
                    } else {
                        System.out.print("   " + m[i][j]);
                    }
                }
            }
            System.out.println("");
        }while(n != 0);
    }
}
  • e o que esse código deveria fazer ?

    Rodolfo Mendes   29 de nov de 2013
  • Não parece haver muito espaço para otimização aí. Isso é para sites como o SPOJ? Se for, desista de usar Java, você jamais poderá competir com códigos feitos em C ou C++.

    ViniGodoy   29 de nov de 2013
  • cara mais tem que ter um jeito, se não eles nem deveriam colocar esse exercício pro pessoal fazer em java. sacanagem :/

    Welisson Oliveira   29 de nov de 2013
  • Rodolfo Mendes ele gera Matrizes conforme você vai informando a ordem digitando numeros entre 1 e 100 até que você aperte o zero. não sei se deu pra entender.

    Welisson Oliveira   29 de nov de 2013
  • Essas competições e sites como o SPOJ servem também para você praticar algoritmos. Mas se você quiser COMPETIR e tentar bater os mais rápidos, não use Java. Só o tempo de carga da VM muitas vezes mais ferrar com o seu escore. Além disso, há muito overhead do gc, da carga de classes (que usam reflexão e são carregadas em Runtime), etc.

    ViniGodoy   29 de nov de 2013
Mostrar todos os 14 comentários>
  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!

1 resposta

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