Поскольку вы пытаетесь непрерывно сортировать массив до его инициализации. Кроме того, у вас есть неопределенное поведение, когда j == SIZE-1
, потому что сравнивать array[j] > array[j+1]
в этот момент недопустимо. array[j+1]
является недопустимым индексом.
Вместо этого:
for(int i = 0; i < SIZE; i++)
{
array[i] = rand()% 1000;
cout << i << ": " << array[i] << "\n";
for(int j = 0; j < SIZE; j++)
{
if(array[j] > array[j + 1])
{
swap(array[j], array[j +1]);
}
cout << i << ": " << array[i] << "\n";
}
}
Это вместо:
// randomly initialize the array
for(int i = 0; i < SIZE; i++)
{
array[i] = rand()% 1000;
cout << i << ": " << array[i] << "\n";
}
// sort
for (int i = 0; i < SIZE; i++)
{
for(int j = i+1; j < SIZE; j++)
{
if(array[i] > array[j])
{
swap(array[i], array[j]);
}
}
}
// print results
cout << "finished sorting" << endl;
for(int i = 0; i < SIZE; i++)
{
cout << i << ": " << array[i] << "\n";
}