2 / 2 / 0
Регистрация: 19.10.2017
Сообщений: 214
|
||||||
1 | ||||||
Быстрая сортировка матрицы по первому столбцу08.03.2020, 22:12. Показов 2158. Ответов 17
Мне нужно с помощью быстрой сортировке отсортировать матрицу. Матрица состоит из 0 и 1, кроме первого, первый столбец - это сумма элементов каждой строки.
Код:
0
|
08.03.2020, 22:12 | |
Ответы с готовыми решениями:
17
Сортировка по первому столбцу! В прямоугольной матрице найти сумму элементов, принадлежащих первой строке, последней строке, первому столбцу и последнему столбцу. Сортировка данных в файле по первому и второму столбцу Сортировка и группировка по первому столбцу И сумма каждого значения второго и третьего столбца |
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
|
|
09.03.2020, 02:11 | 2 |
сначала внесите правки в код, про которые Вам уже говорилось:
Ошибка в сложении массива потом продолжим исправления Добавлено через 6 минут и напишите оригинал условия задачи - скорее всего столбец с суммами в матрице не нужен
0
|
2 / 2 / 0
Регистрация: 19.10.2017
Сообщений: 214
|
|
09.03.2020, 11:04 [ТС] | 3 |
хорошо
Теперь насчёт нужности первого столбца. Вообще в задаче к матрице я должен добавить не один, а 4 столбца, которые представляют некие факторы, первый и самый простой я назвал. Отсортировать матрицу мне нужно так: по первому столбцу по убыванию, дальше одинаковые значения сортируем по второму столбцу, тоже по убыванию, дальше по третьему, но уже по возрастанию и по четвёртому столбцу сортируем тоже по возрастанию. Пример: 7521.. 7537.. 7482.. 4645.. 4648.. 1845.. 1471..
0
|
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
|
|
09.03.2020, 11:25 | 4 |
я говорил о том, что если у Вас есть данные, например суммы строк, не обязательно помещать их в начальную матрицу, можно для них создать отдельный массив, более того можно сортировать строки матрицы по значениям элементов, находящихся в этом массиве
такой пример не информативен. приведите пример начальных данных (входящий массив) и конечных данных.
0
|
2 / 2 / 0
Регистрация: 19.10.2017
Сообщений: 214
|
|
09.03.2020, 11:48 [ТС] | 5 |
давайте я проще объясню, если не поможет, приведу пример начальных данных (входящий массив) и конечных данных/
Так вот, сортировка происходит, как обычная сортировка 4-хзначного числа по убыванию, с отличаем только в том, 2 последних цифры числа мы сортируем по возрастанию. Код
\/ \/ /\ /\ 1 1 1 1
0
|
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
|
|
09.03.2020, 11:56 | 6 |
Knzj, нужен пример ввода-вывода
0
|
2 / 2 / 0
Регистрация: 19.10.2017
Сообщений: 214
|
|
09.03.2020, 12:11 [ТС] | 7 |
Смотрите, на ввод идёт матрица (я её добавлю из документа), дальше у неё для каждой строки будут выявлены 4 фактора, которые я добавлю в матрицу к каждой строке на позиции 0-3. Дальше я должен с помощью быстрой сортировки отсортировать матрицу по этим первым 4-м столбцам. На выход получится отсортированная матрица, которую я добавлю в файл. Не буду вас нагружать сутью этих факторов, можно принять за начало, что они уже включены в матрицу, и начать сортировку.
0
|
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
|
||||||
09.03.2020, 12:20 | 8 | |||||
Knzj, если Вы не желаете приводить пример, дорабатывайте сами что Вам там нужно:
0
|
2 / 2 / 0
Регистрация: 19.10.2017
Сообщений: 214
|
|
09.03.2020, 12:37 [ТС] | 9 |
Я не совсем понял, какой именно вы ходите пример, начальную матрицу (без факторов), а потом итоговую? Просто в данном случае суть не в этом. А эти факторы должны быть в матрице, для проверки работы алгоритма их можно вообще рандомно добавить и по ним сделать быстрою сортировку.
Я, надеюсь, не слишком плохо донёс мысль
0
|
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
|
|
09.03.2020, 14:39 | 10 |
Knzj, я там код сбросил, если заметили. по такому принципу нужно сортировать ?
что Вам неясно насчёт примера ? у Вас есть матрица. она находится в файле. Вы хотите её отсортировать каким-то образом и записать в другой файл. напишите какая матрица в первом файле и какая матрица должна оказаться во втором файле, а также критерии сортировки.
0
|
2 / 2 / 0
Регистрация: 19.10.2017
Сообщений: 214
|
|
09.03.2020, 19:46 [ТС] | 11 |
Yetty,
Мне надо отсортировать быстрой сортировкой.
Моя матрица 40 на 21, но я вам покажу пример поменьше. Итак, вот начальная матрица, я решил уже тут указать сумму 1) Я отсортировал матрицу по убыванию суммы строк. 2) Я отсортировал матрицу по некому критерию, тоже по убыванию. 3) Если некоторые значения после выполнения (2) равны, то я сортирую по 3-му фактору (по возрастанию). 4) Если некоторые значения после выполнения (3) тоже равны, то я сортирую по последнему 4-му фактору (по возрастанию). В итоге у меня получается следующее: Ничего, что в таком виде?
0
|
2 / 2 / 0
Регистрация: 19.10.2017
Сообщений: 214
|
|
09.03.2020, 19:50 [ТС] | 12 |
Вот тут немного подробнее:
Пример.docx
0
|
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
|
|
09.03.2020, 20:57 | 13 |
Knzj, как отсортировать по сумме я показал в коде, дальше я не понимаю, где Вы берёте значения ind2 и что нужно сортировать, если значения ind2 уже заранее отсортированы по убыванию
ind2 5 2 2 1 0 0
0
|
2 / 2 / 0
Регистрация: 19.10.2017
Сообщений: 214
|
|
09.03.2020, 21:18 [ТС] | 14 |
Насчёт того откуда берётся ind2, если надо объясню чуть попозже (это не очень быстро объяснишь), а насчёт того, что по ind2 отсортировано, это не верно, посмотрите вторую и третью версии матриц.
0
|
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
|
|
09.03.2020, 21:44 | 15 |
хорошо, по первому столбцу (там где суммы) отсортировали. дальше хотите те же самые строки отсортировать по второму столбцу ? если да, элементы столбца суммы тоже включать ?
Добавлено через 7 минут почему меняется количество строк ?
0
|
2 / 2 / 0
Регистрация: 19.10.2017
Сообщений: 214
|
|
09.03.2020, 22:56 [ТС] | 16 |
Вообще, я поглядел на задачу, столбцы суммы можно и не включать, а вот ind2,3,4 обязательно.
Да Вы про нижнюю строку выделенную жирным в 3 и 4 версиях матрицы? Это вспомогательные значения нужны только для вычисления ind3, она в матрицу не входит.
0
|
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
|
|
09.03.2020, 23:02 | 17 |
так сортируйте - я же Вам уже показал принцип
нет, я про матрицы в вордовском файле, там пять матриц с такими размерами: 7x10, 7x10, 6x10, 6x10, 4x10
0
|
2 / 2 / 0
Регистрация: 19.10.2017
Сообщений: 214
|
|
09.03.2020, 23:11 [ТС] | 18 |
А, ну в 3 и 4 случаях - это я упустил одну строку, где ind2 = 0, а насчёт последней - это уже я работаю с итоговой матрицей и беру оттуда нужные мне данные, на неё можно не смотреть.
Добавлено через 5 минут Мне надо именно быструю сортировку (quicksort), изначально стояла проблема (самое начало) именно в моём неумении её перевести в виде кода и непосредственно использовать в данной задаче. Хотя вы меня натолкнули на идею, как её можно реализовать, так что я попробую переделать.
0
|
09.03.2020, 23:11 | |
09.03.2020, 23:11 | |
Помогаю со студенческими работами здесь
18
Найти среднее арифметическое элементов, принадлежащих первой строке, последней строке, первому столбцу и последнему столбцу. В прямоугольной матрице найти сумму элементов, принадлежащих первой строке, последней строке, первому столбцу и последнему столбцу Сортировка матрицы по k-ому столбцу Сортировка матрицы по строке/столбцу Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |