Другие языки программирования и технологии

Не сортирует. В чем ошибка? С++

template
void bubbleSort(T *arrayOfType, size_t sizeOfArray)
{
for(size_t indexOne = 0; indexOne < sizeOfArray - 1; ++indexOne)
{
for(size_t indexTwo = indexOne; indexTwo < sizeOfArray - 1; indexTwo++) // две ошибки нужно от первого индекса идти, а не с нуля и до конца массива, а не до середины
{
if(arrayOfType[indexTwo+1] < arrayOfType[indexOne])
{
swap(arrayOfType[indexOne], arrayOfType[indexTwo+1]); //если сравниваем первый и второй, то почему меняем второй и второй + 1?
}
}
}
}

Сто пудово в чем-то подвох. Вы и сами могли найти ошибки. Проверяете на что-то! Или на левые знаки в коде!?
Валентин Александрович
Валентин Александрович
15 408
Лучший ответ
Ремонт Компьютеров Ошибка тут одна. И она в if :)
Неправильный индекс указан.
А вообще, цель вопроса - узнать реакцию народа на триграфы/диграфы :))
Урегулирование Конфликтов может подскажешь ?

как сделать
проверка есть ли файл 1, если есть создать файл2.
а то нихера не могу.
#include <iostream>
#include <utility>
using namespace std;
template<typename Type>
void bubble(Type* pointer, const size_t limit) {
if (!limit) return;
auto current = 0U;
auto flag = false;
while (current < limit) {
auto next = current + 1U;
if (next != limit && pointer[current] > pointer[next]) {
swap(pointer[current], pointer[next]);
flag = true;
}
++current;
if (current == limit && flag) {
flag = !flag;
current = 0U;
}
}
}
template<typename Type>
void print(Type* pointer, const size_t limit) {
for (auto i = 0U; i < limit; ++i) cout << pointer[i] << ' ';
cout.put('\n');
}
int main() {
int box[] = { 6, 5, 9, 3, 1, 8, 7, 2, 4 };
print(box, size(box));
bubble(box, size(box));
print(box, size(box));
system("pause");
}
Ну нифига себе неожидал что от такого спеца вопрос тут увижу)
но конечно все может быть, очевидные простые вещи бывают незаметными, особенно когда уже ничего не соображаешь.

а пузырьком недавно понадобилась, не сработало 1 первый раз, потом увидел ошибку оказалось что я даже переписать правильно алгоритм не могу)

с инета пример взять и сравнить со своим и все, или написать заново.
а template(typename T) не знаю.

Может ошибка тут ?

indexN1 - 0;
indexN2 - 0;

а должно быть
for1{ int indexN1 = 1;}
{
for2{ int indexN2 = 0;}
}

еще тоже заметил че то не то в общем ссылка

https: //nicknixer.ru/programmirovanie/algoritm-puzyrkovoj-sortirovki-odnomernogo-massiva-na-c/

если не разберешься пиши.
Игорь Могила Вопрос от спеца требует ещё больших усилий =)

Похожие вопросы