Неожиданное значение при использовании Bubble Sort в C ++ - PullRequest
0 голосов
/ 25 сентября 2018

При использовании метода пузырьковой сортировки для сортировки моего массива от наименьшего к наибольшему его выводится неожиданное значение: -858993460.

В отладчике мне выдается запрос "Stack around variable", онемение было повреждено'.

В настоящее время я использую Visual Studio для запуска кода.

Я также запускал тот же код в новом проекте без результатов.

#include <iostream>


int main()
{
    int length = 6;   
    int temp = 0;     
    int end = 6;
    int numb[] = { 6, 5, 4, 3, 2, 1 };

    for (int counter = length - 1; counter > 0; counter--)
    {
        for (int i = 0; i < end; i++)
        {
            if (numb[i] > numb[i + 1])
            {
                temp = numb[i + 1];
                numb[i + 1] = numb[i];
                numb[i] = temp;
            }
        }
        for (int i = 0; i <= 5; i++)
        {
            std::cout << numb[i] << " ";
        }

        std::cout << "\n";
        end--;
    }

    system("pause");
}

1 Ответ

0 голосов
/ 25 сентября 2018

В вашем внутреннем цикле for, где int i = 0; i < end; i++, вам нужно установить условие равным i < end - 1.Это потому, что вы уже будете в конце массива с i + 1, когда поменяете местами индексы.

...