Каков более эффективный способ выполнения пузырьковой сортировки вместо того, чтобы копировать и вставлять for l oop 5 раз с использованием приведенного кода?
My logi c здесь, чтобы проверить, есть ли массив [1] (9) больше, чем array [2] (6), поскольку он больше, элементы меняются местами. Но как только он достигнет конца массива, мне нужно скопировать и вставить for l oop, чтобы алгоритм пузырьковой сортировки снова начал проверять массив.
Я не использовал переменные, а скорее динамический c распределения, потому что мне легче понять.
#include <iostream>
int main()
{
int array[] = { 9, 6, 2, 8, 3, 1, 7, 5, 4 };
int temp;
for (int i = 0; i < 8; i++)
{
if (array[i] > array[i + 1])
{
temp = array[i];
array[i] = array[i + 1];
array[i + 1] = temp;
}
}
for (int i = 0; i < 8; i++)
{
if (array[i] > array[i + 1])
{
temp = array[i];
array[i] = array[i + 1];
array[i + 1] = temp;
}
}
for (int i = 0; i < 8; i++)
{
if (array[i] > array[i + 1])
{
temp = array[i];
array[i] = array[i + 1];
array[i + 1] = temp;
}
}
for (int i = 0; i < 8; i++)
{
if (array[i] > array[i + 1])
{
temp = array[i];
array[i] = array[i + 1];
array[i + 1] = temp;
}
}
for (int i = 0; i < 8; i++)
{
if (array[i] > array[i + 1])
{
temp = array[i];
array[i] = array[i + 1];
array[i + 1] = temp;
}
}
for (int i = 0; i < 8; i++)
{
std::cout << array[i] << std::endl;
}
}