2015-04-16 4 views
-1

Итак, я пишу программу, в которой программа генерирует 100 случайных чисел от 0 до 9 и сохраняет их в массиве [с использованием линейного поиска для подсчета время, когда каждое значение сопоставляется в массиве []. Значения должны появляться несколько раз так Linear поиск должен пройти все элементы массива []Использование линейного поиска для подсчета времени, когда каждое значение сопоставляется в массиве []

То, что я получил до сих пор это

public static void main(String[] args) { 
    int[] randomNumbers = new int[100]; 

    for(int index = 0; index < randomNumbers.length; index++) 
    { 
     randomNumbers[index] = (int) (Math.random()*100); 
    } 

    for(int index = 0; index < randomNumbers.length; index++) 
    { 
     System.out.println(randomNumbers[index]); 
    } 

} 

}

+1

Ну я бы начать с написанием кода т o создать массив - и я лично предложил бы использовать 'java.util.Random.nextInt()', а не 'Math.random()' ... После того, как вы получили массив, вы можете начать думать о том, как счетчики. (Подсказка: очень полезно, что у вас есть небольшой и известный диапазон чисел. Возможно, вам понадобится второй массив ...) –

+0

Вы могли бы объяснить более подробно? –

+0

@AndrewJones значения массива, которые идут от 0 до 9, могут составлять индексы второго массива длины 10, где каждое из значений второго массива будет содержать частоту, связанную с его индексом: secondArray [3] будет содержать количество раз 3, содержащееся в firstArray. –

ответ

0

Может быть, не то, что вы» повторно ищу, но простой способ подсчета нескольких экземпляров объектов с использованием HashMap, вот пример с случайным генератором кода:

public static void main(String[] args) { 

    int[] randomNumbers = new int[100]; 
    HashMap<Integer, Integer> map = new HashMap<>(); 

    //Generate 100 random ints 
    for (int index = 0; index < randomNumbers.length; index++) { 
     randomNumbers[index] = (int) (Math.random() * 100); 
    } 

    //Count occurrences of numbers in randomNumbers 
    for (int index = 0; index < randomNumbers.length; index++) { 

     //Get value of key 'randomNumbers[index] 
     Integer count = map.get(randomNumbers[index]); 

     //If key didn't exist create it, else increment the value of occurrences. 
     if (count == null) { 
      map.put(randomNumbers[index], 1); 
     } else { 
      map.replace(randomNumbers[index], count + 1); 
     } 
    } 

    //Print mappings 
    System.out.println(map.toString()); 
} 
+0

Это не совсем то, что я хотел, но я благодарю вас! –