|
2 / 2 / 0
Регистрация: 25.06.2020
Сообщений: 84
|
||||||
Как можно отсортировать по другому?03.08.2020, 15:45. Показов 1530. Ответов 33
Как написать сортирующий алгоритм в ручную чтобы не использовать std::sort ???
какие варианты есть?
0
|
||||||
| 03.08.2020, 15:45 | |
|
Ответы с готовыми решениями:
33
Как можно по другому сделать? Как по-другому можно определить функцию? Как можно первую по другому решить? |
|
Любитель чаепитий
|
||||
| 04.08.2020, 08:00 | ||||
|
сортировка выбором приведена там же ниже. и их различия довольно очевидны. возможно, изначально сортировка пузырьком и являлась лишь вариацией сортировки выбором. или наоборот. это не имеет значения. возможно, кто-то пишет и выбором или вставкой. ничего удивительного в этом не было бы. если весы у нас есть, то мы естественно можем выбрать самую лёгкую и переложить в начало, потом выбрать самую лёгкую из оставшихся и т.д. если же весов нет, то тут гораздо проще было бы сравнивать по две лопаты и переставлять их местами, т.к. лично я вряд ли смогу сравнить массу даже трёх лопат чисто на ощупь, поэтому я бы взял одну лопату и сравнил бы с остальными, если какая-то оказалась бы легче, то я бы поменял их местами. ну то есть это и есть сортировка пузырьком. возможно, я сейчас у себя в голове выдал желаемое за действительное, конечно.
0
|
||||
|
2689 / 1346 / 485
Регистрация: 08.11.2016
Сообщений: 3,734
|
|
| 04.08.2020, 08:16 | |
|
Действительно, если сравнить сортировки выбором, вставками и пузырьком, то самой простой для понимания и реализации окажется сортировка выбором, но у пузырька есть серьезное преимущество - естесственность, можно сказать природная - на которую прямо ссылается само название алгоритма. Вот представьте что вы не знаете алгоритмов сортировок и вам сказали мол есть такой алгоритм: сортировка выбором - какие у Вас при этом мысли? Предположу что-то такое: что и по какому принципу выбираем и что с этим выбором делаем дальше? Для вставок, расчесок и прочего картина будет похожей - сплошные вопросы. А вот сказали: сортировка пузырьком, какие мысли? Думается что-то вроде: ага, пузырьки всплывают, потому что они легкие, ведь все же видели пузырьки, то как они себя ведут - процесс совершенно естественный известный и понятный.
Другой момент рассуждать об этом с позиции постзнания, конечно логичнее и проще выбрать максимум или минимум и поместить его справа или слева чем долго и нудно ждать пока всплывет пузырек. И третий момент: не путайте понятия. Одно дело дать задание отсортировать и посмотреть как испытуемый с ним справится, а совсем другое научить сортировать, взять в качестве первого и самого легкого для объяснения принципа наглядный пузырек, очевидно, проще чем любой другой не имеющий таких вот простых, наглядных и повсеместно распространенных природных аналогов.
0
|
|
|
Комп_Оратор)
|
||||||
| 04.08.2020, 09:23 | ||||||
|
GbaLog-,
. Чтобы пресечь выход за границу массива нужно i<n-1 похоже. Или я неправ?
0
|
||||||
|
Любитель чаепитий
|
||
| 04.08.2020, 09:31 | ||
n - это кол-во элементов в массиве.соответственно первый невалидный элемент будет на arr[n], чего никогда не случится, потому что неравенство строгое.как только i станет равным n - цикл остановится.другое дело, что можно сделать в первом цикле i - 1, т.к. на этом шаге уже все числа будут отсортированы и последнее будет стоять на своём месте.
0
|
||
|
Комп_Оратор)
|
||||||||
| 04.08.2020, 09:56 | ||||||||
0
|
||||||||
|
2689 / 1346 / 485
Регистрация: 08.11.2016
Сообщений: 3,734
|
||
| 04.08.2020, 09:57 | ||
j имеет смысл инициализировать значением i + 1 ибо не имеет смысла выполнять сравнение if (arr[i] > arr[j]) при i == j, а тогда да: чтобы не было выхода за пределы массива внешний цикл треба запускать до i < n - 1
1
|
||
|
Любитель чаепитий
|
||||||||
| 04.08.2020, 09:59 | ||||||||
Optimized Implementation и просто проверяет, отсортирован ли массив дальше.то есть это улучшает только случай, когда какая-то часть проходимой последовательности отсортирована. не понимаю, что вы тут хотите мне доказать. пузырёк есть пузырёк. то, что есть оптимизированные версии не делает неоптимизированный пузырёк НЕ пузырьком.
0
|
||||||||
|
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,316
|
|
| 05.08.2020, 07:51 | |
|
Самое простое, сразу приходит в голову:
1. сравниваем 1-й и 2-й элементы массива, если второй меньше - меняем местами (если сортировка по возрастанию). 2. сравниваем 3-й элемент массива с 2-м и затем с первым, если 3-й меньше меняем местами. 3. и так далее до конца массива. Если это и есть пузырёк, то вот он самый интуитивный алгоритм. Не надо путать с "человеческими" решениями. Человек просто разложит все предметы на земле, посмотрит на них сверху, выберет самый крупный и положит в конец, затем следующий и так далее. Компьютер не может "посмотреть сверху", он может либо пробежать из конца в конец, либо сравнить два соседних.
0
|
|
| 05.08.2020, 15:12 | |
|
0
|
|
| 05.08.2020, 15:43 | |
|
0
|
|
| 05.08.2020, 15:43 | |
|
Можно ли как ни будь по другому зайти в WI F Как можно по-другому использовать цикл? Как можно по-другому написать условие?
Как из ASP можно подконектиться к другому хосту? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|