Minimum et maximum de l'algorithme à l'aide d'un tableau en Java

J'étais en train d'écrire une simple max et min de la méthode, comme je l'ai écrit je ne peux pas d'aider le sentiment qu'il ne devrait pas être si compliqué....peut-être Im mal?
Mon maximum code fonctionne comme ça, excuse mon pauvre pseudo-code:

Remplir un tableau de 10 nombres aléatoires.
Créer un max de variable initialisée à 0, car 0 est le plus bas max.
Comparer chaque élément contre le max
Si l'élément est supérieur à max, remplacez la valeur de max avec l'élément en question

Je n'aime pas le fait que j'ai initialiser le max à 0, je pense que cela pourrait être une meilleure façon que de cela?

Mon min code fonctionne de la même sauf que j'ai:
Comparer mon min est inférieur à l'élément de tableau.
Si l'élément est inférieur à remplacer min.

Ce que je n'aime vraiment pas à ce sujet est que je dois initialiser mon min au maximum de nombre aléatoire, dans ce cas, 50.

Mes questions sont les suivantes:
Est-il une meilleure façon de le faire?
Est-il un moyen plus efficace d'écrire ce code?

import java.util.Random;

public class Main {

public static void main(String[] args) {

    //Declare min and max
    int max=0;
    int min;
    //Array of 10 spaces
    int[] ar=new int[10];
    //fill an array with random numbers between 0 and 50

    for(int i=0;i<10;i++)
    {
        ar[i]=new Random().nextInt(50);
    }

    //Test max algorithm
    //loop trough elements in array
    for(int i=0;i<10;i++)
    {
        //max is set to 0, there should always be a maximum of 0
        //If there isnt 0 will be the maximum

        //If element is greater then max
        //replace max with that element
        if(ar[i]>max)
        {
            max=ar[i];
        }
    }
    System.out.println("The max is "+ max);

    //Test min
    //Initialising min to maximum Random number possible?
    min=50;
    for(int i=0;i<10;i++)
    {
        if(ar[i]<min){
            min=ar[i];
        }
    }
    System.out.println("The min is "+min);


}

}

Vous pouvez simplement trier le tableau avec Arrays.sort(ar) puis prendre le premier et le dernier élément.
Vous pourriez commencer par regrouper les max et min de calcul dans la même boucle.
Le tri serait plus lent: O(n log(n)) vs O(n) pour le min/max de la boucle.

OriginalL'auteur user1016950 | 2012-10-20