Мне часто приходится сортировать колоды карт. Это «коллекционные» карты, пронумерованные от 1 до 216, а также дубликаты и недостающие номера.Эффективные способы сортировки колоды реальных карт
Я ищу алгоритмы сортировки, которые хорошо работают с физическими картами. Сортировка вставки кажется прекрасной, поскольку вставка карты не требует сдвига последующих карт, например, в памяти компьютера. Однако сканирование через большую колоду занимает много времени. С большой колодой есть даже шансы, что вы можете сбросить колоду и перезапустить сортировку.
Я мог бы нарисовать карты на большом столе и сразу поместить каждую карту в нужное место, но это занимает довольно много места и не очень удобно.
Мой обычный подход - сделать первое сканирование через колоду и поместить их в стеки 1-49, 50-99, 100-149, 150-199, 200+. Затем я просматриваю каждую колоду и кладу ее в стопки 0, 1, 2, 3, 4. И, наконец, я применяю сортировку вставки для каждого 10-пакета. Однако это остается утомительным процессом.
Другая идея - взять 50 стеков и отсортировать их примерно. 25 будет идти по середине, 40 где-то ближе к концу стека и так далее. Это быстро приносит грубо отсортированную 50-колоду, и я могу легко просканировать ее и исправить сортировку.
Мне было интересно, можно ли удобно применять более сложный алгоритм для физической колоды. Я не вижу, как мы можем применить быстрый вид, а вещь типа кучи должна знать индекс карты внутри колоды.
Интересный вопрос, но не совсем программирование - есть ли сайт StackExchange, который может быть опубликован? –
«1 до более 200» - какова фактическая верхняя граница? и насколько велики карты, размер обычной игровой карты? – AakashM
, если предел действительно составляет около 200, тогда вы тратите свое время на беспокойство по поводу сложной сортировки и можете сосредоточиться на чем-то другом. –