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

Сортировка динамической матрицы

09.05.2012, 13:29. Показов 2570. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать программу сортировки динамического двумерного массива.

Общее задание:
Динамический двумерный массив (массив строк или матрица чисел - см. свой вариант задания) объявляется в виде массива указателей на одномерные массивы.
Пользователь при запуске программы вводит размерности массива (M x N): M - число строк, N - количество чисел или символов в строке (см. пример выделения и освобождения памяти для многомерных массивов). Затем пользователь заполняет массив данными (не забудьте про проверку на корректность ввода данных массива и размерностей M и N).
Затем выполняется сортировка массива заданным способом по определенному критерию (см. свой вариант задания).
На экране необходимо распечатать исходный массив и его отсортированный вариант.
Предусмотрите возможность пошагового вывода на экран при выполнении сортировки (пользователь выбирает режим в меню самостоятельно - сортировать по шагам или сразу получить результат).

Важно: При сортировке оперируйте указателями на одномерные массивы, не копируя и не переставляя элементы в одномерных массивых в памяти программы.

В программе опишите отдельные функции для:
ввода данных;
подсчета характеристики одномерного массива (критерия, по которому будет осуществляться сортировка);
сортировки двумерного массива;
вывода данных на экран.

Программа должна корректно выделять память и корректно ее освобождать после использования!

Тип данных: массив строк (пользователем задается количество строк и максимальное количество символов в строке)
Критерий сортировки: по длине (количество символов в строке), для строк равной длины - в алфавитном порядке
Алгоритм сортировки: сортировка перемешиванием (Шейкерная сортировка) (Cocktail sort)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.05.2012, 13:29
Ответы с готовыми решениями:

Сортировка динамической матрицы по первой строке используя лямбда-выражение
Здравствуйте, уважаемые форумчане! Столкнулся со следующей проблемой. Не могу правильно скомпилировать этот код. Не получается использовать...

Сортировка слиянием (merge sort), ошибка в динамической аллокации
Уважаемые форумчане, помогите, пожалуйста, разобраться. Задача 1 заключается в реализации сортировки слиянием (рекурсия). Тест...

Создание динамической матрицы
float **matrix_1 = new float *; float **matrix_2 = new float *; for (i=0; i<n; i++) { ...

7
 Аватар для Infinity3000
1066 / 583 / 87
Регистрация: 03.12.2009
Сообщений: 1,255
09.05.2012, 14:43
КиберФорум- компьютерный форум начинающих и профессиональных программистов, системных администраторов, администраторов баз данных. Бесплатная помощь в решении задач по программированию, решение проблем с компьютером.

В чем нужна помощь?

что конкретно не ясно?
0
0 / 0 / 0
Регистрация: 04.05.2012
Сообщений: 5
09.05.2012, 14:47  [ТС]
Не понятно само объявление в виде массива указателей на одномерные массивы.
0
 Аватар для Infinity3000
1066 / 583 / 87
Регистрация: 03.12.2009
Сообщений: 1,255
09.05.2012, 14:51
Цитата Сообщение от TuMbI4 Посмотреть сообщение
Не понятно само объявление в виде массива указателей на одномерные массивы.


Цитата Сообщение от TuMbI4 Посмотреть сообщение
Динамический двумерный массив (массив строк или матрица чисел - см. свой вариант задания) объявляется в виде массива указателей на одномерные массивы.

выделяем память
C++
1
2
3
    int **matr = new int *[n]; // указатель на массив указ-лей;
    for (int i = 0; i < n; ++i) 
        matr[i] = new int [m];

освобождаем память

C++
1
2
3
for (int i = 0; i < n; i++)
        delete [] matr[i];
    delete [] matr;
0
157 / 157 / 27
Регистрация: 29.03.2012
Сообщений: 418
09.05.2012, 14:51
C++
1
2
3
int **mas = new int*[M];
for (int i=0; i <M; ++i)
  mas[i] = new int[N];
0
0 / 0 / 0
Регистрация: 04.05.2012
Сообщений: 5
09.05.2012, 15:02  [ТС]
А сама сортировка будет выполняться для указателя, или для обьявленого массива? Простите что туплю просто не могу понять эти указатели =(
0
 Аватар для Infinity3000
1066 / 583 / 87
Регистрация: 03.12.2009
Сообщений: 1,255
09.05.2012, 15:04
Цитата Сообщение от TuMbI4 Посмотреть сообщение
А сама сортировка будет выполняться для указателя, или для обьявленого массива?
Вы же сортируете массив

Цитата Сообщение от TuMbI4 Посмотреть сообщение
Простите что туплю просто не могу понять эти указатели =(

Массивы и указатели
1
0 / 0 / 0
Регистрация: 04.05.2012
Сообщений: 5
09.05.2012, 15:09  [ТС]
Цитата Сообщение от Infinity3000 Посмотреть сообщение

Спасибо большое. Поразбираюсь до завтра если возникнут вопросы напишу. Еще раз спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.05.2012, 15:09
Помогаю со студенческими работами здесь

Степень динамической матрицы
Всем привет. Мне нужно возвести динамическую матрицу в куб, но через &quot;pow&quot; не получается (вылезает ошибка no instance of overloaded...

Создание динамической матрицы
никак не могу понять в чем ошибка #include &lt;stdio.h&gt; void matrix(int n) { int** arr = new int*; for(int i = 0;...

Cортировка динамической матрицы
Отсортировать каждую строку динамической матрицы по возрастанию и вывести новую матрицу с упорядоченными строками Помогите...не...

Обработка динамической матрицы
Помогите, пожалуйста, решить задачу. Вводится число N с клавиатуры. Рандомно заполняется двумерный массив N*N. Нужно вычислить сумму...

Некорректный вывод динамической матрицы
Здравствуйте. У меня некорректно выводятся числа в динамическом двумерном массиве. Задача заключается в том, что нужно из одномерного...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru