0 / 0 / 0
Регистрация: 04.05.2012
Сообщений: 5
1

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

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

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

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

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

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

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

Тип данных: массив строк (пользователем задается количество строк и максимальное количество символов в строке)
Критерий сортировки: по длине (количество символов в строке), для строк равной длины - в алфавитном порядке
Алгоритм сортировки: сортировка перемешиванием (Шейкерная сортировка) (Cocktail sort)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.05.2012, 13:29
Ответы с готовыми решениями:

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

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

Создание динамической матрицы
float **matrix_1 = new float *; float **matrix_2 = new float *; for...

Степень динамической матрицы
Всем привет. Мне нужно возвести динамическую матрицу в куб, но через "pow" не получается (вылезает...

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

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

что конкретно не ясно?
0
0 / 0 / 0
Регистрация: 04.05.2012
Сообщений: 5
09.05.2012, 14:47  [ТС] 3
Не понятно само объявление в виде массива указателей на одномерные массивы.
0
1066 / 583 / 87
Регистрация: 03.12.2009
Сообщений: 1,255
09.05.2012, 14:51 4
Цитата Сообщение от 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 5
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  [ТС] 6
А сама сортировка будет выполняться для указателя, или для обьявленого массива? Простите что туплю просто не могу понять эти указатели =(
0
1066 / 583 / 87
Регистрация: 03.12.2009
Сообщений: 1,255
09.05.2012, 15:04 7
Цитата Сообщение от TuMbI4 Посмотреть сообщение
А сама сортировка будет выполняться для указателя, или для обьявленого массива?
Вы же сортируете массив

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

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

Спасибо большое. Поразбираюсь до завтра если возникнут вопросы напишу. Еще раз спасибо.
0
09.05.2012, 15:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.05.2012, 15:09
Помогаю со студенческими работами здесь

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

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

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

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


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

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

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