Подсчёт числа сравнений в условии цикла

Выполняю задание - сравнить алгоритмы сортировки массивов по количеству сравнений (как элементов, так и прочих). Есть два цикла, в условиях которых подсчёт числа сравнений выполняется неправильно (по мнению преподавателя).

do
{
    a0++;
    array[1][a1] = array[0][a0];
    a1++;
}
while (comp_oth++ && comp_el++ && a0 < n - 1 && array[0][a0] > array[0][a0 + 1]);

И в следующем коде:

while ((comp_oth += 2) && (comp_el += 2) && array[1][i] && array[2][j] && (array[1][i] > array[1][i + 1] || array[2][j] > array[2][j + 1]))
{
    if (comp_el++ && array[1][i] > array[2][j])
    {
        array[0][a0] = array[1][i];
        a0++; i++;
    }
    else
    {
        array[0][a0] = array[2][j];
        a0++; j++;
    }
}

Причём подсчёт неверный только в строчках с while. Comp_oth - счётчик прочих сравнений, comp_el - счётчик сравнений элементов. Подскажите, почему я неправильно выполняю подсчёт? Указано, что подсчёт неверен по одной и той же причине.


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