Порядок обработки значений зависит от алгоритма сортировки интерпретатора. В результате вы не должны беспокоиться об этом; конечный результат будет одинаковым независимо от того, в каком порядке они обрабатываются (если вы сортируете колоду карт, она будет в том же порядке, независимо от того, перетасовали ли вы ее заранее или до тех пор, пока 2 < 3
и J < Q
и и так далее.
Во всех алгоритмах сортировки, кроме самых наивных, значение будет посещено («обработано») несколько раз, прежде чем оно попадет на свое окончательное место в массиве результатов. Когда вы return
в обратном вызове указываете на uksort
, это не обязательно последний раз, когда обратный вызов будет вызываться для этих двух значений.