Алгоритм Пузырьком в C++.
Подскажите в чём ошибка.
void stupid_sort(vector &x)
{
for (int i = 0; i < x.size() - 1; i++)
{
for (int j = x.size() - 1; j < i; j++)
if (x[j - 1] > x[j])
{
temp = x[j - 1];
x[j - 1] = x[j];
x[j] = temp;
}
else break;
}
}
Выдаёт ошибку в 6-ой 8-ой и 10-ой строке.
Из условия, что в той же самой программе алгоритм Глупой сортировки
void stupid_sort(vector &x)
{
for(int i = 0; i < x.size() - 1;)
if(x[i + 1] < x[i])
{
swap(x[i], x[i + 1]);
i = 0;
}
else i++;
}
Работает так как надо.

87009522377 87009522377    3   23.05.2020 13:18    0

Ответы
kolya1123 kolya1123  23.05.2020 13:30

Объяснение:

Ну букву 'T' замените на int, к примеру:

C++Выделить код

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

void bubbleSort(int* arr, int size)  // Сортировка пузырьком

{

   int tmp;

 

   for(int i = 0; i < size - 1; ++i) // i - номер прохода

   {            

       for(int j = 0; j < size - 1; ++j) // внутренний цикл прохода

       {      

           if (arr[j + 1] < arr[j])  

           {

               tmp = arr[j + 1];  

               arr[j + 1] = arr[j];  

               arr[j] = tmp;

           }

       }

   }

}

Передавать массив вот так:

bubbleSort(имя_массива, количество_элементов);

0

ПОКАЗАТЬ ОТВЕТЫ
Hayat11111 Hayat11111  23.05.2020 13:30

Не правильно передан массив.И как человек выше ответил,не Т,а int

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика