Пузырьковая сортировка

Рейтинг: 0Ответов: 1Опубликовано: 10.03.2011

Наконец дошел до массивов, разбираюсь с сортировкой массивов. Объясните, пожалуйста, эту строчку. Почему n - 1?

for (int x = 0; x < n; x++)
{
    // Почему n - 1?
    for (int y = 0; y < n - 1; y++)
    {
        if (array[y] > array[y + 1])
        {
            int temp = array[y + 1];

            array[y + 1] = array[y];
            array[y] = temp;
        }
    }
}

Ответы

▲ 5

Если бы цикл был до n, то последнее значение y, которое мы рассматриваем y = n - 1, что соответствует последнему элементу массива (элемента с индексом n у нас нет, потому что индексация с 0).

при y = n - 1:

if (array[y] > array[y + 1])

примет вид

if (array[n - 1] > array[n])

Мы сравниваем последний элемент и элемент, которого нет, что было бы ошибкой.