|
15 / 12 / 4
Регистрация: 03.02.2011
Сообщений: 96
|
|
Случайная сортировка25.10.2011, 21:21. Показов 14333. Ответов 18
Метки нет (Все метки)
0
|
|
| 25.10.2011, 21:21 | |
|
Ответы с готовыми решениями:
18
Случайная сортировка с использованием IComparer
Случайная буква |
|
167 / 96 / 23
Регистрация: 13.03.2011
Сообщений: 402
|
|
| 25.10.2011, 21:59 | |
|
случайно - это ещё как?
1) перемешать 2) быстрая сортировка? qsort(),
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||||||
| 25.10.2011, 22:18 | ||||||
|
Случайно - это типа "упс, остортировал..."?
Если серьезно, то вот вам хороший, годный метод:
3
|
||||||
|
16 / 16 / 5
Регистрация: 11.10.2011
Сообщений: 37
|
||||||
| 25.10.2011, 22:24 | ||||||
0
|
||||||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 25.10.2011, 22:40 | ||
|
На собеседованиях при подобном вопросе сыпятся именно на этой строчке.
0
|
||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|
| 25.10.2011, 22:54 | |
|
FakiR, при таком подходе растасовка будет распределена не равномерно по массиву.
Поясню. В каждой итерации генерируется случайное число в интервале от 0 до n, что влечет за собой потенциально многократное передвижение одного и того же элемента. Доводя пример до абсурда (хотя статистически это вполне возможно), можно предположить, что на всех n итерациях сгенерируется одно и то же число, в результате одна пара будет двигаться взад-назад, а остальной массив останется нетронутым. Передвинув один элемент массива, больше его трогать не надо - пусть живет на новом месте. Заметьте, при этом из пары свопнутых элементов рассматривается только один. Второй элемент пары можно еще разок передвинуть.
2
|
|
|
16 / 16 / 5
Регистрация: 11.10.2011
Сообщений: 37
|
||
| 25.10.2011, 23:11 | ||
|
код отлично работает и ошибок в нем нет, а вероятность "Доводя пример до абсурда" ничтожно мала.
http://rosettacode.org/wiki/Knuth_shuffle#C.23
0
|
||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 25.10.2011, 23:22 | ||
|
Вероятность же повторной выборки при таком подходе далеко не так мала как кажется: сгенерируйте 10 случайных чисел в диапазоне от 1 до 10. С большой вероятностью у вас будет минимум два повтора. Это значит минимум два элемента останутся на своих местах. Что касается алгоритма Кнута, то в книге "Искусство программирования" за его авторством (кстати, горячо рекомендую к прочтению), приводится именно алгоритм, учитывающий этот момент. Так что пример на розетте можно считать ошибочным. Не по теме: Как тут не похвастаться: у моего бывшего профессора в университете наставником был Кнут. Правило шести рукопожатий :D
0
|
||
|
0 / 0 / 0
Регистрация: 21.07.2018
Сообщений: 3
|
||||||
| 07.07.2020, 21:33 | ||||||
|
Добавлено через 1 час 40 минут
0
|
||||||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|
| 07.07.2020, 21:37 | |
|
Saents, у вас постоянно одно и то же "случайное" число генерируется.
0
|
|
|
628 / 392 / 135
Регистрация: 06.03.2017
Сообщений: 1,469
|
||||||
| 07.07.2020, 21:43 | ||||||
|
kolorotur, а через Linq сортировка достаточно случайная получается?
что-то вроде такого
0
|
||||||
|
0 / 0 / 0
Регистрация: 21.07.2018
Сообщений: 3
|
|||||||
| 07.07.2020, 21:45 | |||||||
|
Добавлено через 1 минуту
1
0
|
|||||||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||||||||
| 07.07.2020, 22:08 | ||||||||
0
|
||||||||
|
0 / 0 / 0
Регистрация: 21.07.2018
Сообщений: 3
|
|
| 07.07.2020, 22:19 | |
|
0
|
|
|
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
|
||
| 07.07.2020, 23:22 | ||
|
Saents, а что делать если в исходном массиве есть 0?
Добавлено через 5 минут Добавлено через 9 минут ну и как результат это ооооочень медленно. на 10 000 000 элементов я чай успел сделать, а потом надоело ждать. Для сравнения медленный линк справился бы за 4 секунды.
0
|
||
|
Wanna be serious
587 / 474 / 186
Регистрация: 31.07.2013
Сообщений: 1,693
|
||||||
| 08.07.2020, 00:49 | ||||||
|
Что если так:
0
|
||||||
| 08.07.2020, 00:49 | |
|
Помогаю со студенческими работами здесь
19
Случайная форма Случайная цитата с баша. Случайная строка из файла Случайная форма случайная строка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|