Сортировка не сложнее, чем умножение чисел. На бумаге они примерно одинаковы, и вам также нужен сложный алгоритм умножения, чтобы сделать большое умножение конкурентоспособным с крупной сортировкой. Кроме того, когда предложенный алгоритм умножения возможен, вы также можете использовать сортировку по сегментам, которая асимптотически быстрее.
Однако покерная комбинация не является асимптотической проблемой. Это всего лишь 5 карт, и он заботится только об одном из 13 числовых значений карты. Даже если умножение в принципе сложно, на практике оно реализовано в микрокоде и невероятно быстро. То, что он делает, работает.
Теперь, если вас интересует теоретический вопрос, есть также решение, использующее сложение, а не умножение. Может быть только 4 карты с любым одним значением, так что вы также можете назначить значения 1,5,25, ..., 5 ^ 12 и добавить их. Это все еще вписывается в 32-битную арифметику. Существуют также другие решения на основе сложения с другими математическими свойствами. Но это действительно не имеет значения, потому что микрокодированная арифметика намного быстрее, чем все остальное, что делает компьютер.