Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 31.03.2020
Сообщений: 21
1

Не удается реальзовать сортировку

08.10.2020, 19:41. Показов 263. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пробую реализовать шейкерную сортировку,но выдает не верный результат, не могли бы вы помочь7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
using namespace std;
int main() {
    int n = 0,a,b;
    cin >> n;
    cin >> a >> b;
    int array[100];
    for (int i = a; i <= b; i++) {
        *(array + i) = rand() % (b-a+1) + a;
    }
    int right = n-1, left = 1;
    bool flag = true;
    do {
        bool flag = true;
        for (int i = 0; i <= right; i++) {
            if (*(array + i) > *(array + i + 1)) {
                swap(array[i], array[i + 1]);
                flag = false;
            }
        }
        right--;
        for (int i = right; i >= left; i--) {
            if (*(array + i) < *(array + i - 1)) {
                swap(array[i], array[i - 1]);
                flag = false;
            }
        }
        left++;
    } while (flag == false);
    
    for (int i = 0; i < n; i++) {
        cout << *(array + i) << ' ';
    }
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.10.2020, 19:41
Ответы с готовыми решениями:

Как реальзовать команду
Здравствуйте. Как реализовать команду help То есть как в cmd.exe Пишешь Help и там сообщение

Реальзовать Функцию вычисления факториала числа
Функция вычисления факториала числа..

Сортировку вставками меняем на Пирамидальную сортировку и на Сортировку подсчётом
Здравствуйте. Я не как не могу разобраться.Помогите. У меня есть листинг сортировки вставками: ...

Не удается реализовать пузырчатую сортировку и линейный поиск
Добрый день всем, я для саморазвития решил изучить основы Си, сам я очень далек от...

6
264 / 183 / 87
Регистрация: 03.05.2020
Сообщений: 790
08.10.2020, 19:45 2
Цитата Сообщение от John Travolta Посмотреть сообщение
bool flag = true; do { bool flag = true;
с флагами не перебор?
1
0 / 0 / 0
Регистрация: 31.03.2020
Сообщений: 21
08.10.2020, 20:04  [ТС] 3
Без этого не работает.
Но даже если делать проверку
C++
1
while (lft<=right)
все равно не выходит
0
Вездепух
Эксперт CЭксперт С++
11696 / 6375 / 1724
Регистрация: 18.10.2014
Сообщений: 16,071
08.10.2020, 20:07 4
Цитата Сообщение от John Travolta Посмотреть сообщение
Без этого не работает.
В смысле?

Еще раз: зачем вы объявили переменную

C++
1
2
3
    bool flag = true;
    do {
    } while (flag == false);
если ее знечение нигде не меняется? То есть это - бесконечный цикл.
1
0 / 0 / 0
Регистрация: 31.03.2020
Сообщений: 21
08.10.2020, 20:08  [ТС] 5
Мне кажется,программа делает лишний шаг,но как это пофиксить я не знаю

Добавлено через 1 минуту
Я использую ее дальше в цикле в качестве проверки менялись ли местами члены массива
0
Вездепух
Эксперт CЭксперт С++
11696 / 6375 / 1724
Регистрация: 18.10.2014
Сообщений: 16,071
08.10.2020, 20:18 6
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
То есть это - бесконечный цикл.
Ошибся. Это не бесконечный цикл, а наоброт: цикл, который не итерирует, а сразу завершается после первой итерации.

Добавлено через 3 минуты
Цитата Сообщение от John Travolta Посмотреть сообщение
Я использую ее дальше в цикле в качестве проверки менялись ли местами члены массива
Нет, вы ее не используете для этого. Метку "менялись ли местами члены массива" вы ставите в совсем другую переменную flag. Именно на это вам указал AnyKey выше: зачем вы завели две разные переменные flag?
1
0 / 0 / 0
Регистрация: 31.03.2020
Сообщений: 21
08.10.2020, 20:21  [ТС] 7
Тогда подскажите, пожалуйста, как это исправить
0
08.10.2020, 20:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.10.2020, 20:21
Помогаю со студенческими работами здесь

Реальзовать запрос
Добрый день Есть 2 проблемы: 1. в форме &quot;регистрация номеров&quot; на поле &quot;№ комнаты&quot; установлено...

Реальзовать легкую опцию солвера
Здравствуйте. Есть такой код: основной файл: a= =ode45(@divur,, );...

ЕГЭ по информатике! Не могу реальзовать ввод данных через пробел
После единых выпускных экзаменов по информатике в район пришла информация о том, какой ученик какой...

Как добавить в сортировку товара новое свойство, например сортировку по высоте, ширине, весу?
Как добавить в сортировку товара новое свойство, например сортировку по высоте, ширине, весу? Мне...

Подскажите как эту сортировку переделать в сортировку по алфавиту?
Подскажите как эту сортировку переделать в сортировку по алфавиту?? vector&lt;std::pair&lt;string,...

Сравнить сортировку Шелла и сортировку с помощью прямого включения
Хотел бы узнать как можно написать код который будет сравнивать сортировку Шелла и сортировка с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru