Сортировка массива выборкой,есть 2 метода один возвращает мин.элемент, 2 метод индекс.Тест выдает ошибку, прошу помочь в решении

public class SortSelected {
    public static int[] sort(int[] data) {
        for (int i = 0; i < data.length; i++) {
            int min = MinDiapason.findMin(data, 0, data.length);
            int index = FindLoop.indexOf(data, min, 0, data.length);
            int temp = data[index];
            data[index] = data[i];
            data[i] = temp;
        }
        return data;
    }
}
public class FindLoop {
    public static int indexOf(int[] data, int el, int start, int finish) {
        int rst = -1;
        for (int index = start; index < finish; index++) {
            if (data[index] == el) {
                rst = index;
                break;
            }
        }
        return rst;
    }
}
public class MinDiapason {
    public static int findMin(int[] array, int start, int finish) {
        int min = array[start];
        for (int i = start; i < finish; i++) {
            if (array[i] < min) {
                min = array[i];
            }
        }
        return min;
    }
}
import org.junit.Test;
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;

public class SortSelectedTest {

    @Test
    public void whenSort() {
        int[] input = new int[] {3, 4, 1, 2, 5};
        int[] result = SortSelected.sort(input);
        int[] expect = new int[] {1, 2, 3, 4, 5};
        assertThat(result, is(expect));
    }
}

Ответы (1 шт):

Автор решения: Алексей Осецкий

Класс SortSelected должен выглядеть так

public class SortSelected {
    public static int[] sort(int[] data) {
        for (int i = 0; i < data.length; i++) {
            int min = MinDiapason.findMin(data, i, data.length);
            int index = FindLoop.indexOf(data, min, i, data.length);
            int temp = data[index];
            data[index] = data[i];
            data[i] = temp;
        }
        return data;
    }
}

Цитата Serodv: в методы findMin и indexOf надо передавать i как стартовый индекс поиска, а не 0.

Тогда тест отработает

→ Ссылка