С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/14: Рейтинг темы: голосов - 14, средняя оценка - 4.71
Вальтазар
0 / 0 / 0
Регистрация: 04.10.2009
Сообщений: 17
1

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

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

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

Сортировка массива пузырьком
Здравствуйте! Нужен код сортировки массива пузырьком. Сначала на экран...

Сортировка массива по возрастанию(пузырьком)
Считать данные из файла, отсортировать по возрастанию, результат поместить в...

Сортировка двумерного Массива пузырьком
Всем Привет! Помогите пожалуйста отсортировать двумерный динамический массив...

Сортировка пузырьком двумерного массива.
Задание: Упорядочить массив по возрастанию элементов к-строки (использовать...

Сортировка двумерного массива пузырьком
Помогите пожалуйста сортировать двумерный массив, когда создаю const все...

4
Nick Alte
Эксперт С++
1648 / 1020 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
11.02.2010, 19:14 2
Представь массив в линейном виде. Между двумерными и линейными координатами есть прямая связь:
линейный индекс = (индекс строки)*3 + (индекс столбца), l = i*3 + j;
индекс строки = (линейный индекс) / 3 (деление нацело) i = l/3;
индекс столбца = остаток от деления линейного индекса j = l%3;

Для других размеров матрицы это будет не 3, а какая там у тебя длина строки. Все индексы, разумеется, начинаются с 0.
0
Вальтазар
0 / 0 / 0
Регистрация: 04.10.2009
Сообщений: 17
12.02.2010, 00:00  [ТС] 3
Nick Alte А ты не мог бы привести пример кода??Просто я что-то всё равно не пойму как это сделать.
0
Nick Alte
Эксперт С++
1648 / 1020 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 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]);
1
Вальтазар
0 / 0 / 0
Регистрация: 04.10.2009
Сообщений: 17
13.02.2010, 12:17  [ТС] 5
Огромнейшее спасибо за помощь!!!
0
13.02.2010, 12:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2010, 12:17

Сортировка двумерного массива пузырьком
Всем привет! задача такая:Составить программу для сортировки массива данных...

Массив: Сортировка пузырьком двумерного массива
Код вроде бы робочий но в отсортированном масиве в i-1 j-1 елементе выскакивает...

Сортировка массива пузырьком - найти ошибку в коде
В массив вношу 46 случайных чисел от 1 до 26 включая, упорядочиваю по убыванию...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru