Was ist das Beste, was wir mit der Lauflängencodierung machen können?
Diese Seite schlägt vor, dass die Zeitkomplexität O (m * n) ist, wobei m die Anzahl der Wiederholungen der Zahl ist.
Ist der effizientere Algorithmus für RLE?
Antworten:
2 für die Antwort № 1Ich denke du hast die Laufzeit vielleicht falsch verstanden. Der Algorithmus auf der Wikipedia-Seite ist O (n) (wobei n die Länge der Eingabe ist). Beachten Sie, dass der Index für beide Schleifen gleich ist und zunimmt.
0 für die Antwort № 2
Wie bereits erwähnt, ist die Zeitkomplexität O (n). Effizientere Algorithmen verwenden SIMD oder CUDA, um mehr als ein Element gleichzeitig zu verarbeiten.
Vielleicht sehen Sie sich eine effiziente und schnelle Implementierung an: TurboRLE: Lauflängenkodierung einschließlich SIMD. Ein Benchmark-Programm wird ebenfalls bereitgestellt.