Глядя на код ниже, не первая итерация означает, что i = 0 и j = 0 - 1? Почему нет ошибки? Я думал, что вставка сортировки должна начинаться с конца массива/правой стороны. Как этот код выполняет это?вставка сортировка код путать по порядку
class stevee {
public static void main(String[] args) {
int A[] = {2,1,9,8,12};
new stevee().sort(A);
System.out.println(Arrays.toString(A));
}
public void sort(int[] data) {
for (int i=0; i<data.length; i++) { //access each element one by one
int current = data[i]; //
int j = i-1;
while (j >= 0 && data[j] > current) {
data[j+1] = data[j];
j--;
}
data[j+1] = current;
}
}
}
, потому что java использует ленивую оценку, так что если первая часть ложна, остальные не проверены (В случае оператора &&) –