| Set :: Intspan :: schnell SET :: INTSPAN :: FAST ist ein Perl-Modul zur schnellen Handhabung von Sets, die ganzzahlige Spannen enthalten. |
Jetzt downloaden |
Set :: Intspan :: schnell Ranking & Zusammenfassung
- Lizenz:
- Perl Artistic License
- Name des Herausgebers:
- Andy Armstrong
- Website des Verlags:
- http://search.cpan.org/~andya/
Set :: Intspan :: schnell Stichworte
Set :: Intspan :: schnell Beschreibung
SET :: INTSPAN :: FAST ist ein Perl-Modul zur schnellen Handhabung von Sets, die ganzzahlige Spannen enthalten. Set :: Intspan :: FAST ist ein Perl-Modul für die schnelle Handhabung von Sets mit Integer Spanse.synopsis Set :: Intspan :: FAST; Mein $ set = Set :: Intspan :: FAST-> NEU (); $ set-> Hinzufügen (1, 3, 5, 7, 9); $ set-> add_range (100, 1_000_000); drucken $ set-> as_string (), "n"; # druckt 1,3,5,7,9,100-1000000Das Set :: Intspan-Modul stellt Sets von Ganzzahlen als eine Anzahl von inklusiven Bereiche dar, beispielsweise '1-10,19-23,45-48'. Da viele der Operationen lineare Suchen der Liste der Bereiche beinhalten, neigt seine Gesamtleistung dazu, proportional zur Anzahl verschiedener Reichweite zu sein. Dies ist in Ordnung für kleine Sätze, leidet jedoch im Vergleich zu anderen möglichen eingestellten Darstellungen (Bitvektoren, Hashschlüsseln), wenn die Anzahl der Bereiche groß wächst. Dieses Modul repräsentiert auch Sätze als Wertebereiche, sondern speichert diese Bereiche in Ordnung und verwendet eine binäre Suche nach Viele interne Operationen, so dass die Gesamtleistung in Richtung O log n tendiert, wobei n die Anzahl der Bereiche ist. Die interne Darstellung, die von diesem Modul verwendet wird, ist extrem einfach: Ein Set ist als Liste der Ganzzahlen dargestellt. Ganzzahlen in gerade nummerierten Positionen (0, 2, 4 usw.) repräsentieren den Beginn eines Zahlenlaufs, während die in ungeraden nummerierten Positionen die Enden der Läufe darstellen. Als Beispiel würde der Set (1, 3-7, 9, 11, 12) intern als (1, 2, 3, 8, 11, 13) dargestellt. SETS können unendlich sein - vorausgesetzt, Sie sind bereit, das zu akzeptieren Infinity ist eigentlich nicht mehr als eine ziemlich große Ganzzahl. Insbesondere die Konstanten Set :: Intspan :: Fast :: negativ_infinity und set :: Intspan :: Fast :: positiv_infinity ist definiert als - (2 ^ 31-1) und (2 ^ 31-2). So erstellen Sie ein unendliches Set invertieren Sie ein leeres: MY $ INF = SET :: INTSPAN :: FAST-> NEU () -> Ergänzung (); Sets müssen nur in einer Richtung begrenzt werden - beispielsweise ist dies der Satz von allen positiven Ganzzahlen (vorausgesetzt, Sie akzeptieren die etwas schwache Definition der Unendlichkeit, die wir verwenden): My $ pos_int = Set :: Intspan :: FAST-> NEU (); $ pos_int-> add_range (1, $ pos_int-> positiv_infinity); Anforderungen: · Perl.
Set :: Intspan :: schnell Zugehörige Software