Алгоритм Пузырьком в 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++;
}
Работает так как надо.
Объяснение:
Ну букву '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
Не правильно передан массив.И как человек выше ответил,не Т,а int