none
Algorithmus zum Ordnen und Sortieren in Echtzeit RRS feed

  • Allgemeine Diskussion

  • Sehr geehrte Damen und Herren,

    ich habe einen Algorithmus geschrieben, der große Anzahlen von Einträgen ordnen und sortieren kann. Es wird ein pyramidenförmiges Verzeichnis erstellt, indem die Einträge und Gruppen untereinander verschoben werden. Weitere Informationen finden Sie auf meiner Webseite svenbieg.azurewebsites.net/Clusters.




    Ich stelle den Algorithmus in Form von C++-Templates über GitHub bereit.


    Funktionsweise


    Die Einträge werden in Gruppen zusammengefasst.
    Die Anzahl der Einträge in einer Gruppe ist begrenzt und wird standardmäßig auf 100 festgelegt.
    Ist die Gruppe voll, wird eine neue übergeordnete Gruppe erstellt. Beim Sortieren werden in dieser Gruppe der erste und der letzte Eintrag vermerkt.
    Der erste und der letzte Eintrag einer Gruppe können in die Nachbargruppe verschoben werden.
    Die Einträge werden zwischen den Gruppen verschoben, damit alle Gruppen möglichst voll werden.
    Auch die Anzahl der Gruppen ist begrenzt, es wird wieder eine übergeordnete Gruppe erstellt.
    Wenn Platz in einer vollen Gruppe benötigt wird, kann ein ganzer Zweig verschoben werden.

    Liste

    Der einfachste Cluster ist die Liste. Einträge können an beliebiger Stelle eingefügt und entfernt werden, ohne die Reihenfolge zu verändern.

    Die Liste ist leistungsfähiger als die Liste in der Standardbibliothek. Sie finden die Benchmarks unter http://svenbieg.azurewebsites.net/Clusters/List.


    Index

    Der nächste Cluster ist der Index, welcher zum Sortieren verwendet wird. Jede Id kann mit einem benutzerdefinierten Eintrag verknüpft werden.

    Der Index ist leistungsfähiger als die Map-Klasse in der Standardbibliothek. Sie finden die Benchmarks unter http://svenbieg.azurewebsites.net/Clusters/Index.


    Ich hoffe meine Lösung schafft es in die Standardbibliothek!

    Mit freundlichen Grüßen,

    Sven Bieg









    • Bearbeitet Sven Bieg Montag, 8. Januar 2018 04:43
    Samstag, 12. August 2017 13:27

Alle Antworten