Das ist nicht so kompliziert.
Schritt 1 , wir benötigen eine Zuordnung von Ihren Werten zu einem Schlüssel, den Perl sortieren kann, z. Zahlen. Wir können die Indizes der Elemente in Ihrem benutzerdefinierten Kollationsarray verwenden, wie zum Beispiel:
%Vor%Schritt 2 , wir machen eine Schwartzsche Transformation auf Ihrer Eingabe mit einem der obigen Werte als Schlüssel:
%Vor%Alle dargestellten Lösungen zeigen die Sortierung mit %code% zeitlicher Komplexität. Es gibt einen Weg, wie man es ohne tatsächliche Sortierung in %code% zeitlicher Komplexität macht.
%Vor%Bearbeiten :
Wenn in der Eingabe mehrere Werte vorhanden sein können, gibt es folgende Lösung:
%Vor%%code% enthält Schlüssel = & gt; val-Paare wie %code% = & gt; %code% , %code% = & gt; %code% , usw.
%code% ist %code% Hash-Segment, das sortiert wird, und Array-Segment %code% ist %code%
Beim Sortieren mit einem kleinen ganzzahligen Schlüssel ist die Radix-Sortierung normalerweise die schnellere Lösung mit O (N) -Komplexität:
%Vor%Oder Sie können auch eine billige O (N) -Zählung verwenden:
%Vor%Das ist nicht so kompliziert.
Schritt 1 , wir benötigen eine Zuordnung von Ihren Werten zu einem Schlüssel, den Perl sortieren kann, z. Zahlen. Wir können die Indizes der Elemente in Ihrem benutzerdefinierten Kollationsarray verwenden, wie zum Beispiel:
%Vor%Schritt 2 , wir machen eine Schwartzsche Transformation auf Ihrer Eingabe mit einem der obigen Werte als Schlüssel:
%Vor% Alle dargestellten Lösungen zeigen die Sortierung mit O(NlogN)
zeitlicher Komplexität. Es gibt einen Weg, wie man es ohne tatsächliche Sortierung in O(N)
zeitlicher Komplexität macht.
Bearbeiten :
Wenn in der Eingabe mehrere Werte vorhanden sein können, gibt es folgende Lösung:
%Vor%