Digits, когда рассматриваются как символы, обрабатываются так же, как алфавитный персонажи. (т.е. они имеют относительный лексикографический порядок, который совпадает с порядком их размещения на основе возрастающего значения)
Фактически, когда вы обрабатываете целые числа в виде строки, вы можете рассматривать цифры 0,1,2,3, 4,5,6,7,8,9 - буквы a, b, c, d, e, f, 'J'. Следовательно, сортировку ввода можно рассматривать как сортировку строк.
Ваш первоначальный вход;
100 1 10 2 21 20
можно затем рассматривать как;
baa b ba c cb ca
, для которого будет надлежащим образом оформлен заказ;
b ba baa c ca cb
Если вы вернете значения, вы можете увидеть, что это результат, который вы предоставили в своем вопросе, а именно:
1 10 100 2 20 21
Если вы читаете список номеров, почему бы вам не прочитать их * как числа *? –
Возможно, вы сравните первую цифру с другими, затем с 2-м и так далее ...не могу сказать вам без вашего кода – izlin
«Может кто-нибудь объяснить, как это происходит?» - для * точно * причина, по которой вы заявили: это * строки *. «Значения» сортируются по последовательностям символов, сравниваются по одному в лексикографическом виде. – WhozCraig