|
1 / 1 / 0
Регистрация: 20.10.2012
Сообщений: 56
|
|
Как отсортировать элементы массива в соответствии с определённым условием?24.02.2017, 00:45. Показов 4514. Ответов 15
задание такое дан массив например 10 элементов(вообще там не важно может быть и 100 и 200 ) заполняем случайными числами от 1 до 10(от 1 до n где n это размер массива) без повторений, вопрос такой как отсортировать элементы массива так чтобы элементы стоящие рядом имели разность по модулю больше либо равно 5.
например массив из 5 элементов 4 3 5 2 1 сортируем чтобы разность по модулю была больше либо равна 2 на выходе должны получить 4 2 5 3 1 как бы я не старался не получается пробывал пузырьком и вставками.
0
|
|
| 24.02.2017, 00:45 | |
|
Ответы с готовыми решениями:
15
Отсортировать одним из методов элементы массива в соответствии с заданием Изображения в соответствии определенным элементам массива |
|
1617 / 1182 / 553
Регистрация: 08.01.2012
Сообщений: 4,561
|
|
| 24.02.2017, 01:50 | |
|
перебором с откатом
0
|
|
|
5 / 5 / 3
Регистрация: 31.01.2017
Сообщений: 31
|
|
| 24.02.2017, 06:53 | |
Сообщение было отмечено gru74ik как решение
Решение
fedot199614, написать компаратор по Вашему условию и в функцию сортировки передать.
0
|
|
|
1617 / 1182 / 553
Регистрация: 08.01.2012
Сообщений: 4,561
|
|
| 24.02.2017, 07:25 | |
|
всего один вариант:5 10 4 9 3 8 2 7 1 6, второй зеркальный
0
|
|
|
-16 / 14 / 3
Регистрация: 22.01.2013
Сообщений: 154
|
||||||
| 24.02.2017, 13:27 | ||||||
|
Для разминки тебе. Ставь свои условия и вперёд( лямбдой):
0
|
||||||
|
1 / 1 / 0
Регистрация: 20.10.2012
Сообщений: 56
|
||||||
| 24.02.2017, 16:56 [ТС] | ||||||
|
я нашёл решение
кусок главного кода
это для моей задачи в 200 элементов а мы рассмотрим алгоритм на примере массива с 5 элементами алгоритм такой например дан массив из 5 элементов 4 3 5 2 1 надо расставить с разницей больше либо равно 2 проверяем 4-3=1 не меняем ничего 4-5=1 не меняем ничего 4-2=2 меняем след элемент после 4 это 3 с элементом который нам подходит это 2 получаем 4 2 5 3 1 благодаря break перестановка будет только одна и итерация индекса внешнего цикла увеличится на 1 соотвецтвенно проверяется элемент 2 2-5=3 сразу нам подходит переходим к свапу т.к след элемент после 2 это 5 и подходя щий элемент тоже 5 получается что 5 перезапишет сама себя и останется на месте и получим 4 2 5 3 1 следующей проверяется 5 5-3 ничего 5-1 подходит соотвецтвенно меняем 3 и 1 местами и получаем отсортированный массив 4 2 5 1 3 который подходит под наше условие. всем спс.
0
|
||||||
|
1617 / 1182 / 553
Регистрация: 08.01.2012
Сообщений: 4,561
|
|
| 24.02.2017, 17:06 | |
сократите до 10, как у ТС, так и проверять легче, не работает это
0
|
|
|
1 / 1 / 0
Регистрация: 20.10.2012
Сообщений: 56
|
|||||||
| 26.02.2017, 18:07 [ТС] | |||||||
|
вот полный код + элементы в массиве должны быть без повторений. на выходе получаем разницу в 2 и выше между соседними элементами.
![]() вот несколько раз сгенерировал ![]() [img]src="https://i.paste.pics/4fdfa9f4245b3447aad013786b162e24.png[/img]
0
|
|||||||
|
1617 / 1182 / 553
Регистрация: 08.01.2012
Сообщений: 4,561
|
|
| 26.02.2017, 18:11 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 20.10.2012
Сообщений: 56
|
||
| 26.02.2017, 18:27 [ТС] | ||
|
но т.к исправить после 5 минут пост нельзя так и осталось а я и забыл, а 2 можно взять для модели массива из 10 элементов. если работает логика для 10 то и для 200 тоже будет работать по идее, но я только что нашёл ошибку у себя и не знаю как её исправить. по алгоритму получается что в конце массива если встретятся такой набор 8 6 5 то только в этом случаи не получается получается что для 8 6 подходит и оно поменяет само себя, далее 6 и 5 6-5=1 ничего не поменяет да и нес чем ведь массив закончился( Добавлено через 5 минут вот пример ![]() но я был близко))
0
|
||
|
1617 / 1182 / 553
Регистрация: 08.01.2012
Сообщений: 4,561
|
|
| 26.02.2017, 18:31 | |
|
возможна #4, а ваш алгоритм работает от случая к случаю 3 1 4 5....
0
|
|
|
1 / 1 / 0
Регистрация: 20.10.2012
Сообщений: 56
|
||||||||||||
| 26.02.2017, 18:55 [ТС] | ||||||||||||
|
я не могу понять почему у вас не работает. сколько я не генерирую в середине массива всё нормально возникает проблема только в конце которую я описал выше Добавлено через 8 минут попробовал решить проблему вот таким образом(повезло что массив не динамический)
0
|
||||||||||||
|
-16 / 14 / 3
Регистрация: 22.01.2013
Сообщений: 154
|
|
| 26.02.2017, 19:37 | |
|
Я тут для любознательных выкладывал дельта-кодирование.
0
|
|
|
1 / 1 / 0
Регистрация: 20.10.2012
Сообщений: 56
|
|
| 26.02.2017, 20:37 [ТС] | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 20.10.2012
Сообщений: 56
|
|||||||||||
| 05.03.2017, 19:42 [ТС] | |||||||||||
|
вот нормальное решение ошибки в конце в место этого
0
|
|||||||||||
| 05.03.2017, 19:42 | |
|
Помогаю со студенческими работами здесь
16
Генерация двумерного массива с определённым условием
Как проверить есть ли в таблице две одинаковых строки с определенным условием Построение из двух, одного массива, при этом элементы второго массива переставлены в соответствии с правилом. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|