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.