С заданным массивом код работает верно, если подставить другие значения начинаются проблемы. Не могу понять где у меня ошибка.
package com.javarush.task.task12.task1233;
/*
Изоморфы наступают
*/
public class Solution {
public static void main(String[] args) throws Exception {
int[] data = new int[]{1, 2, 3, 5, -2, -8, 0, 77, 5, 5};
Pair<Integer, Integer> result = getMinimumAndIndex(data);
System.out.println("The minimum is " + result.x);
System.out.println("The index of the minimum element is " + result.y);
}
public static Pair<Integer, Integer> getMinimumAndIndex(int[] array) {
// создаю новый массив
int[] newArray = new int[array.length];
// делаю новый массив идентичным заданному массиву
for (int i = 0; i < array.length - 1; i++) {
newArray[i] = array[i];
}
// сортирую новый массив от меньшего к большему
if (array == null || array.length == 0) {
return new Pair<Integer, Integer>(null, null);
} else {
for (int i = newArray.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
if (newArray[j] > newArray[j + 1]) {
int tmp = newArray[j];
newArray[j] = newArray[j + 1];
newArray[j + 1] = tmp;
}
}
}
}
// инициализирую переменную индексМинимальногоЧисла и
// нахожу индекс минимального значения в изначальном массиве
int minIndex = 0;
for (int i = 0; i < array.length - 1; i++) {
if (array[i] == newArray[0]) {
minIndex = i;
}
}
return new Pair<Integer, Integer>(newArray[0], minIndex);
}
public static class Pair<X, Y> {
public X x;
public Y y;
public Pair(X x, Y y) {
this.x = x;
this.y = y;
}
}
}