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

Алгоритм пузырьковой сортировки

21.01.2019, 15:10. Показов 2109. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Можете подсказать как сделать так что бы после сортировки отрицательные числа отсортированные от большего значения к меньшему . После обработки массив должен выглядеть так: -2 -5 -10 -10 14 11 8 4 4 0

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
const int NEIGHBOUR_CELL_SHIFT =1,NUMBER_ARRAY_SIZE=21 ;
for (int i = 0; i < NUMBER_ARRAY_SIZE - NEIGHBOUR_CELL_SHIFT; i++)
                {
                for (int j = NUMBER_ARRAY_SIZE - NEIGHBOUR_CELL_SHIFT; j>i; j--)
                    {
                    if (numberArray[i]==0)
                    {
                        temp = numberArray[i];
                        numberArray[NUMBER_ARRAY_SIZE] = temp;
                        
                    }
                    if ((numberArray[j]>numberArray[j - NEIGHBOUR_CELL_SHIFT]) && (numberArray[j]>0)) 
                    {
                        temp = numberArray[j];
                        numberArray[j] = numberArray[j - NEIGHBOUR_CELL_SHIFT];
                        numberArray[j - NEIGHBOUR_CELL_SHIFT] = temp;
                    }
                    if ((numberArray[j]<numberArray[j - NEIGHBOUR_CELL_SHIFT]) && (numberArray[j]<0)) 
                    {
                        temp = numberArray[j];
                        numberArray[j] = numberArray[j - NEIGHBOUR_CELL_SHIFT];
                        numberArray[j- NEIGHBOUR_CELL_SHIFT] = temp;
                    }
                    }
                
                }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.01.2019, 15:10
Ответы с готовыми решениями:

Алгоритм пузырьковой сортировки
#include&lt;iostream.h&gt; #define SIZE 5 void bsort (int iArray, int n); int main() { char ch;...

Модифицированный алгоритм пузырьковой сортировки
Консольного приложение, реализующего два алгоритма, один из которых обеспечивает решение задачи...

Определите, сколько обменов сделает алгоритм пузырьковой сортировки по возрастанию для данного массива
Определите, сколько обменов сделает алгоритм пузырьковой сортировки по возрастанию для данного...

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

2
599 / 436 / 136
Регистрация: 22.11.2017
Сообщений: 1,340
21.01.2019, 19:19 2
Массив исходный разлить на 2 массива: первый с отрицательными элементами из исходного массива, второй - с положительными.
Отсортировать отдельно оба новых массивов по убыванию одним алгоритмом, который лучше вынести в функцию.
Сшить массивы в один итоговый.
1
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
21.01.2019, 20:22 3
Написать соответствующее условие обмена. Если оба числа одного знака, то сортируются в обратном порядке, иначе как обычно.
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
#include <algorithm>
#include <iostream>
using namespace std;
 
void bubbleSort(int *a, size_t len, int (*cmp)(int, int) = [](int x, int y) { return x - y; }) {
    for (unsigned i = 0; i < len; i++) {
        for (unsigned j = 0; j < (len - i - 1); j++) {
            if (cmp(a[j], a[j + 1]) > 0) {
                std::swap(a[j], a[j + 1]);
            }
        }
    }
}
 
int main() {
    int a[] = {-1, 1, 4, -10, -4, -7, -5,  5, 2, -2, 7, 8, -8};
    bubbleSort(a, sizeof(a)/sizeof(a[0]), [](int x, int y) {
        if (((x < 0) && (y < 0)) || ((x > 0) && (y > 0))) {
            // Числа одного знака сортируются по невозрастанию.
            return y - x;
        }
        else {
            // Отрицательные числа должны оказаться в начале.
            return x - y;
        }
    });
 
    for (auto x : a) {
        cout << x << " ";
    }
    cout << endl;
 
    return 0;
}
0
21.01.2019, 20:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.01.2019, 20:22
Помогаю со студенческими работами здесь

Анализ пузырьковой сортировки
здравствуйте. дайте пжл доступные статьи по теме : анализ среднего случая пузырьковой сортировки

Шаблон пузырьковой сортировки
У меня проблемы с шаблоном пузырьковой сортировки. Почему элементы double не сортируется...

Метод пузырьковой сортировки
Подскажите как сделать сортировку одномерного массива методом пузырька по убыванию? //сортировка...

Процедура пузырьковой сортировки
Мне нужна эта процедура на Си++. Как представить запись на Си++? type tKey = string; ...

Реализация алгоритма пузырьковой сортировки
Задача на массивы, где нужно банки переливать (ну, у меня она с этим ассоциируется). Раньше решал...

Усовершенствовать метод пузырьковой сортировки
Здравствуйте, хочу спросить, как можно усовершенствовать метод пузырьковой сортировки , таким...


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

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