O sinal de menos é ignorado na primeira passagem. Portanto, a primeira passagem classifica 1
, 11
, 1a
, 11a
. Desde 1
< a
, você recebe 11a
< 1a
e, portanto, 11-a
< 1-a
.
-
é um elemento de agrupamento variável , o que significa que você / o implementador pode optar por ignorá-lo. A implementação do glibc aparentemente o faz. Na prática, a maioria da pontuação é afetada por esse comportamento.
Você pode ler os detalhes do Algoritmo de Ordenação Unicode , modulo como a glibc o implementa.