Si vous pouvez trier votre fichier contenant les chaînes, alors lire la liste triée et compter les doublons serait facile. (Vous pouvez conserver le fichier d'origine et créer un nouveau fichier de chaînes triées.) Le tri de fichiers volumineux est une technologie ancienne. Vous devriez être capable de trouver un utilitaire pour cela.
Si vous ne pouvez pas trier, alors considérez digesting les chaînes. MD5 peut être exagéré pour votre usage. Vous pouvez paver quelque chose. Pour des milliards de chaînes, vous pouvez utiliser des condensés de 8 octets. Utilisez un arbre (probablement un BST) de digests. Conservez les décalages de fichier des chaînes uniques qui produisent ce condensé pour chaque résumé.
Lorsque vous lisez une chaîne, calculez son résumé et recherchez-la. Si vous ne trouvez pas le résumé, vous savez que la chaîne est unique. Rangez-le dans l'arbre. Si vous trouvez le résumé, vérifiez chaque chaîne associée pour une correspondance et gérez-la en conséquence.
Pour comparer les chaînes, vous devez accéder au fichier, car tout ce que vous avez stocké correspond aux décalages de fichiers.
Ce qui est important de se rappeler que si deux condensés sont différents, les chaînes qui les ont produites doivent être différentes. Si les condensés sont les mêmes, les chaînes peuvent ne pas être les mêmes, vous devez donc vérifier. Cet algorithme sera plus efficace lorsqu'il y aura moins de chaînes en double.