Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.89
Вальтазар
0 / 0 / 0
Регистрация: 04.10.2009
Сообщений: 17
#1

Сортировка улучшенным пузырьком массива - C++

11.02.2010, 18:50. Просмотров 2265. Ответов 4
Метки нет (Все метки)

Здравствуйте. Похожие темы поднимались не один раз, но ни где нету примера сортировки улучшенным пузырьком многомерного массива
Помогите пожалуйста разобраться. Вот примерное задание:
Дан многомерный массив, размер произвольный. Отсортировать этот массив методом пузырька с двумя улучшениями.
Вот список улучшений:
1. Если на очередном проходе не произошло не одного обмена, то это значит, что масиив отсортирован и нету смысла далее сортировать.
2. Если запоминать не только факт самого обмена, но и индекс последнего обмена например в переменную n. То следующие проходы нужно выполнять до n.
С одномерным массивом я разобрался как отсортировать и сделать улучшения, но задача состоит в том, что необходимо отсортировать полностью массив, а не построчно, а как это сделать я не пойму.
Пример:
дан массив:
369
154
872
нужно получить:
123
456
789
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2010, 18:50     Сортировка улучшенным пузырьком массива
Посмотрите здесь:

сортировка пузырьком C++
Сортировка пузырьком двумерного массива. C++
C++ Сортировка двумерного массива пузырьком
Сортировка пузырьком C++
C++ Сортировка массива пузырьком - найти ошибку в коде
Сортировка массива по возрастанию "пузырьком" C++
Сортировка одномерного массива методом обмена ("пузырьком") C++
Сортировка пузырьком C++
C++ Сортировка двумерного Массива пузырьком
C++ Сортировка массива по возрастанию(пузырьком)
Сортировка "пузырьком" массива структур по заданному полю C++
Сортировка массива пузырьком C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1605 / 997 / 118
Регистрация: 27.09.2009
Сообщений: 1,923
Завершенные тесты: 1
11.02.2010, 19:14     Сортировка улучшенным пузырьком массива #2
Представь массив в линейном виде. Между двумерными и линейными координатами есть прямая связь:
линейный индекс = (индекс строки)*3 + (индекс столбца), l = i*3 + j;
индекс строки = (линейный индекс) / 3 (деление нацело) i = l/3;
индекс столбца = остаток от деления линейного индекса j = l%3;

Для других размеров матрицы это будет не 3, а какая там у тебя длина строки. Все индексы, разумеется, начинаются с 0.
Вальтазар
0 / 0 / 0
Регистрация: 04.10.2009
Сообщений: 17
12.02.2010, 00:00  [ТС]     Сортировка улучшенным пузырьком массива #3
Nick Alte А ты не мог бы привести пример кода??Просто я что-то всё равно не пойму как это сделать.
Nick Alte
Эксперт С++
1605 / 997 / 118
Регистрация: 27.09.2009
Сообщений: 1,923
Завершенные тесты: 1
12.02.2010, 17:55     Сортировка улучшенным пузырьком массива #4
C++
1
2
3
int a[4][5] = {/*всякие там числа...*/};  // А теперь последовательно напечатаем все 20 элементов
for(int i=0; i<20; ++i)
    printf("%d\n", a[i/5][i%5]);
Вальтазар
0 / 0 / 0
Регистрация: 04.10.2009
Сообщений: 17
13.02.2010, 12:17  [ТС]     Сортировка улучшенным пузырьком массива #5
Огромнейшее спасибо за помощь!!!
Yandex
Объявления
13.02.2010, 12:17     Сортировка улучшенным пузырьком массива
Ответ Создать тему
Опции темы

Текущее время: 06:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru