0 / 0 / 0
Регистрация: 23.01.2013
Сообщений: 20
|
||||||
1 | ||||||
Двумерный массив в одномерный14.09.2013, 23:15. Показов 7339. Ответов 17
Метки нет (Все метки)
Здравствуцте,
Есть двумерный массив с отсортированными строками. нужно его преобразовать в одномерный отсортированный. Алгоритм предлагаю следующий: (для массива 3*3) перебираем 9 раз массив если (эта строка непомеченная) ищем среди 1 столбца минимум и записываем его в одномерный. затем "удаляем" минимальный элемент из двумерного массива. если находим строку , где 1 элемент = последнему, значит помечаем эту строку=0. вот код который у меня получился. сортирует нормально, но когда доходит до помеченной строки, реагирует неправильно. P.S. недавно начал программировать. объесняйте пожалуйста подробней ))
0
|
14.09.2013, 23:15 | |
Ответы с готовыми решениями:
17
Массив: преобразорвать двумерный массив в одномерный и отсортировать его методом пузырька Дан двумерный массив 3х3. Получить одномерный массив из из отрицательных элементов матрицы. Дан двумерный массив размерностью 4*5. Сформировать одномерный массив Дан двумерный массив. Сформировать одномерный массив из элементов заданного массива, расположенных под побочной диагональю. |
193 / 170 / 32
Регистрация: 09.09.2013
Сообщений: 522
|
|
15.09.2013, 11:34 | 2 |
лучше переписать все элементы из двумерного массива в одномерный и произвести его сортировку
мне кажется что это легче чем возится с двумерным и помечать строки
0
|
0 / 0 / 0
Регистрация: 23.01.2013
Сообщений: 20
|
||||||
15.09.2013, 16:24 [ТС] | 3 | |||||
Это не эффективно и задача дана преподавателем.
Добавлено через 11 минут мой код эволюционировал до такого состояния почти все происходит хорошо, но не записывает в новый массив последний элемент из повторяющейся строки
0
|
413 / 250 / 118
Регистрация: 26.12.2012
Сообщений: 787
|
||||||
15.09.2013, 21:38 | 4 | |||||
Может быть как то так,если я правильно понял.
1
|
413 / 250 / 118
Регистрация: 26.12.2012
Сообщений: 787
|
||||||||||||||||
15.09.2013, 23:49 | 6 | |||||||||||||||
Тогда так.
Добавлено через 2 минуты и эти инклуды лишние
Добавлено через 1 минуту Понял.Сейчас переделаю.У вас должны только строки отсортированы?
0
|
347 / 292 / 37
Регистрация: 23.03.2012
Сообщений: 838
|
|
15.09.2013, 23:50 | 7 |
0
|
413 / 250 / 118
Регистрация: 26.12.2012
Сообщений: 787
|
||||||
16.09.2013, 00:11 | 9 | |||||
Отсортированный?
Добавлено через 1 минуту Так?
0
|
0 / 0 / 0
Регистрация: 23.01.2013
Сообщений: 20
|
|
16.09.2013, 00:24 [ТС] | 10 |
это не то, что нужно. нужно именно определенный вид массива преобразовать в одномерный (отсортированный), без последующей дополнительной сортировки
Добавлено через 11 минут Genn55, это не то ))) пользователь ввел массив с клавиатуры. по условию, он уже отсортирован по строкам. дальше из этого двумерного массива, нужно сделать одномерный (отсортированный). при этом его не нужно дополнительно сортировать, после того как массив будет преобразован в одномерный. массив должен так собраться в одномерный, чтобы дальнейшая сортировка была не нужна. общая идея такая: когда массив двумерный будет задан, нужно среди его первого столбца искать минимум, затем записать минимум в новый массив (одномерный). затем как-то удалить старый минимум (возможное решение: сдвиг всех элементов на 1 влево так, что потом получится целая строка из одинаковых элементов) найти новый минимум и т.д.
0
|
347 / 292 / 37
Регистрация: 23.03.2012
Сообщений: 838
|
|
16.09.2013, 00:28 | 11 |
Как это не то? Почитай ссылку внимательнее. Тебе нужен пункт "3. Два упорядоченных массива половинного размера соединяются в один."
0
|
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
|
|
16.09.2013, 00:40 | 12 |
0
|
413 / 250 / 118
Регистрация: 26.12.2012
Сообщений: 787
|
||||||
16.09.2013, 01:53 | 13 | |||||
Вот такой вариант пойдет?Если строки сортированы по условию работать будет.
0
|
0 / 0 / 0
Регистрация: 23.01.2013
Сообщений: 20
|
|
16.09.2013, 23:12 [ТС] | 14 |
вылетает с ошибкой, после задания массива.
игнатура проблемы: Имя события проблемы: APPCRASH Имя приложения: cyberforum.exe Версия приложения: 0.0.0.0 Отметка времени приложения: 52375734 Имя модуля с ошибкой: cyberforum.exe Версия модуля с ошибкой: 0.0.0.0 Отметка времени модуля с ошибкой: 52375734 Код исключения: c0000005 Смещение исключения: 000015e3 Версия ОС: 6.1.7601.2.1.0.256.48 Код языка: 1049 Дополнительные сведения 1: 0a9e Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789 Дополнительные сведения 3: 0a9e Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789
0
|
413 / 250 / 118
Регистрация: 26.12.2012
Сообщений: 787
|
||||||
17.09.2013, 02:35 | 15 | |||||
Не знаю,что еще нужно.
1
|
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
|
||||||
17.09.2013, 16:45 | 16 | |||||
Как вариант:
Кликните здесь для просмотра всего текста
1
|
18 / 18 / 13
Регистрация: 14.09.2013
Сообщений: 37
|
||||||
17.09.2013, 21:05 | 17 | |||||
вот может быть. храним в массиве указатели на строки. ищем минимум между числами на котырые указывают указатели, после нахождения минимума переносим его в одномерный массив, а указатель который указывал на минимум теперь указывает на число следующее за минимумом.
0
|
0 / 0 / 0
Регистрация: 23.01.2013
Сообщений: 20
|
|
17.09.2013, 21:13 [ТС] | 18 |
Всем большое спасибо!
0
|
17.09.2013, 21:13 | |
17.09.2013, 21:13 | |
Помогаю со студенческими работами здесь
18
Скопировать двумерный массив в одномерный массив из 50 элементов Двумерный массив в одномерный Одномерный и двумерный массив. Двумерный массив. Сформировать одномерный массив, каждый элемент которого равен первому четному элементу соответствующего столбца Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |