Я не могу понять в конце, в комментарии в коде я написал, что не понимаю, можете, пожалуйста , объяснить)
Массив сортируется методом выбора по возрастанию (слева направо: ищется минимум и меняется с левым элементом). Сколько раз меняет свое место первый по порядку элемент?
Входные данные
В первой строке дано одно натуральное число n — количество элементов в массиве ( 1 ≤ n ≤ 1000 ). Во второй строке содержится сам массив из n натуральных чисел. Гарантируется, что все числа различны и не превышают 10 6 .
Выходные данные
Выведите одно число — количество перемещений первого элемента.
Примеры
входные данные
3
1 3 2
выходные данные
0
входные данные
4
4 1 5 3
выходные данные
3
import java.util.Scanner;
public class Sortirovka4 {
public static void main(String[] args) {
int counter, num;
Scanner input = new Scanner(System.in);
System.out.println("Введите количество элементов массива: ");
num = input.nextInt();
int[] array = new int[num];
System.out.println("Введите " + num + " чисел");
//Заполняем массив, вводя элементы в консоль
for (counter = 0; counter < num; counter++) {
array[counter] = input.nextInt();
}
// сортируем массив
selectionSort(array);
}
static void selectionSort(int[] a) {
int N = a.length;
int count = 0;
int first = a[0];
for (int i = 0; i < N - 1; i++) {
int min = i;
for (int j = i + 1; j < N; j++) {
if (a[j] < a[min]) {
min = j;
}
}
int t = a[min];
a[min] = a[i];
a[i] = t;
if (a[i] == first || a[min] == first) { //по идее здесь должен быть a[j] == first,
count++; //но я не могу понять, как это реализовать
}
}
System.out.println(count);
}
}