Boyer-Moore est considéré comme étant un chouia meilleur que KMP, mais cela dépend de la sous-chaine à trouver et de la chaine dans laquelle se fait la recherche.
Pour Boyer-Moore, voir http://www-igm.univ-mlv.fr/~lecroq/string/node14.html
Pour Knuth-Morris-Pratt, voir http://www-igm.univ-mlv.fr/~lecroq [...] ECTION0080
Les deux algorithmes se basent en gros sur le même prinicipe, mais il y en a un qui va de gauche droite et l'autre dans l'autre sens. Ils profitent des lettres qui apparaissent plusieurs fois dans la sous-chaine à chercher. Mais ils sont moins performant qu'une recherche brute ordinaire dans le cas où la sous-chaine ne contient aucune lettre en double.
Par ailleurs, le gain est tout de même relativement faible car l'algorithme ordinaire simple est très rapide. En essayant, j'avais réalisé que gagner 20 pourcent sur une recherche qui dure deux secondes au total, ne vaut pas le coup de s'ennuyer avec KMP ou BM. En fait, la différence était même totalement effacé dans mon cas par le fait que les entrées/sorties sur disque sont beaucoup plus lentes que la recherche en mémoire, et donc la CPU n'était que partiellement utilisée dans les deux cas, puisqu'il fallait attendre la lecture du disque.
Je ne comprends pas bien la deuxième question. Je peux juste dire, comme M. de La Palisse, qu'il est très probable qu'une recherche dans un fichier texte sera plus rapide que dans un fichier Excel.