sort < fichier | uniq
pour la variable d'ordre pour avoir un tri stable, faut utiliser la méthode DSU (bien connu des programmeurs python) Decorate-Sort-Undecorate.
ça ajoute juste N à ta complexité ce qui est peu. en gros avant de tout balancer dans le hashset, il faut tranformer les entrées
data -> [data, indice] -> traitement -> data
et le voilà ton tri stable.