2010-03-19 6 views
1

Quelle est la meilleure façon de coder les longueurs d'exécution.Codage de la longueur d'exécution

This page suggère la complexité est en O (m * n) où m est le nombre de fois que le nombre répète ..

Est-ce l'un algorithme plus efficace de faire RLE?

Répondre

2

Je pense que vous avez peut-être mal compris l'exécution. L'algorithme sur la page wikipedia est O (n) (où n est la longueur de l'entrée). Remarquez comment l'indice est le même pour les deux boucles et augmente.

+0

Notez que c'est le meilleur que vous pouvez faire (les algorithmes de compression nécessitent généralement une lecture sur les données, donc O (n) minimum) –

0

Comme déjà indiqué, la complexité temporelle est O (n). Des algorithmes plus efficaces utilisent SIMD ou CUDA pour traiter plus d'un élément à la fois.

Vous pouvez jeter un oeil à une implémentation efficace et rapide: TurboRLE:Run Length Encoding y compris SIMD. Un programme de référence est également fourni.

Questions connexes