Arrays mit Bezug zu einem sortierten Array sortieren

8
___ qstnhdr ___ Arrays mit Bezug zu einem sortierten Array sortieren ___ answer18926524 ___

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%     
___ answer18929853 ___

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%     
___ answer18926516 ___
%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%

    
___ tag123arrays ___ Ein Array ist eine geordnete Datenstruktur, die aus einer Sammlung von Elementen (Werten oder Variablen) besteht, die jeweils durch einen oder mehrere Indizes identifiziert werden. Wenn Sie nach bestimmten Varianten von Arrays fragen, verwenden Sie stattdessen diese verwandten Tags: [Vektor], [Arraylist], [Matrix]. Wenn Sie dieses Tag verwenden, markieren Sie die Frage auch mit der verwendeten Programmiersprache, es sei denn, Ihre Frage bezieht sich nicht auf eine bestimmte Programmiersprache. ___ tag123sorting ___ Das Sortieren ist der Vorgang, bei dem eine Reihenfolge auf eine Objektgruppe angewendet wird. ___ tag123perl ___ Perl ist eine prozedurale, allgemeine Programmiersprache für allgemeine Zwecke, die für ihre native Unterstützung von regulären Ausdrücken und String-Parsing-Funktionen bekannt ist. Bitte verwenden Sie diesen Tag für Fragen zu Perl im Allgemeinen. Für Dinge, die mit der neuen (aber verwandten) Sprache "Perl 6" zu tun haben, verwenden Sie bitte das perl6-Tag. Verwenden Sie für reguläre Ausdrücke nach Perl-Art in anderen Sprachen das Regex-Tag oder, falls sie auf der PCRE-Bibliothek basieren, das PCRE-Tag. ___ answer18929309 ___

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%     
___
jkshah 20.09.2013, 21:51
quelle

4 Antworten

10
%Vor%

%h enthält Schlüssel = & gt; val-Paare wie one = & gt; 0 , two = & gt; 1 , usw.

@h{@in1} ist 2,0,4 Hash-Segment, das sortiert wird, und Array-Segment @ref_array[0,2,4] ist one, three, five

    
Сухой27 20.09.2013, 21:57
quelle
4

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%     
amon 20.09.2013 21:58
quelle
1

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%     
salva 21.09.2013 05:36
quelle
0

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.

%Vor%

Bearbeiten :

Wenn in der Eingabe mehrere Werte vorhanden sein können, gibt es folgende Lösung:

%Vor%     
Hynek -Pichi- Vychodil 21.09.2013 06:56
quelle

Tags und Links