Заполнение массива случайными элементами и использование SelectionSort, но получаю странную ошибку: Fix? - PullRequest
0 голосов
/ 28 февраля 2020
class SelectionSort {
public static int[] sort(int[] arr, int n) {
  //int min;
  int temp;
    for(int i=1; i < n; i++) {
        int min = i;
        for (int j = i+1; j <= n; j++)
            if (arr[j] < arr[min])
                min = j;

        temp = arr[i];
        arr[i] = arr[min];
        arr[min] = temp;
    }
  return arr;

}

public static int[] fillArray(int[] arr) {
  for (int k=0; k < arr.length; k++) {
     arr[k] = (int)(Math.random() * 100);
     System.out.println(arr[k] + " "); 
  }
  return arr;

}

public static void main(String args[]) {
  /* SelectionSort ob = new SelectionSort();
  int n = 100;
  int[] arr = new int[n];
  ob.sort(arr);
  ob.fillArray(arr); */
  int[] arr1 = fillArray(arr1);
  int[] arr2 = sort(arr1);
  for (int i:arr2) {
     System.out.print(i); 
  }

}}

Я получаю странную ошибку, говоря «SelectionSort. java: 31: ошибка: метод сортировки в классе SelectionSort не может быть применен к данным типам; ', есть идеи, как это исправить? я потерялся.

1 Ответ

0 голосов
/ 28 февраля 2020

Во внутреннем для l oop вы положили "j <= n" </p>

для (int j = i + 1; j <= n; j ++) {</p>

Так j становится размером массива, но максимальный индекс должен быть на 1 меньше n.

...