Blog

Warum gibt es so viele Sortieralgorithmen?

15
November
,
2021

Wikipedia listet 43 verschiedene Sortieralgorithmen auf. Schnellsortierung, Merge-Sortierung, Shell-Sortierung, Bubble-Sortierung, Pigeonhole-Sortierung, Spreadsortierung, Bead-Sortierung, Stooge-Sortierung und viele mehr.

Warum so viele?

Denn unterschiedliche Sortieralgorithmen sind unter verschiedenen Umständen nützlich.

  • Einige (z. B. Bubble) sind einfach zu implementieren und daher für den Unterricht nützlich.
  • Einige (Merge-Sortierung, Heap-Sortierung) haben eine relativ niedrige Grenze für die Anzahl der im schlimmsten Fall auszuführenden Operationen. Wenn sie N Elemente sortieren müssen, werden sie nie mehr als O(N log N) benötigen . Anmerkung: siehe hier für eine Definition von O()
  • Einige (Einfügesortierung, Würfelsortierung) haben eine geringe Anzahl von "Best-Case"-Operationen, was bedeutet, dass sie schnell beendet sind, wenn die Liste bereits sortiert ist. Für N Elemente ist ihr bester Fall O(N)
  • Einige (Heap-Sorten) benötigen sehr wenig Speicherplatz
  • Einige (Bead sort) funktionieren nur mit positiven ganzen Zahlen
  • Einige... nun, Sie verstehen schon.

Ein Ingenieur, der einen Sortieralgorithmus verwenden möchte, tut gut daran, über die Merkmale der zu sortierenden Daten, die Einschränkungen des Prozessors, die Verfügbarkeit paralleler Prozessoren und viele andere Einschränkungen nachzudenken. Obwohl einige Algorithmen beliebter sind als andere, gibt es keinen einzigen Algorithmus, der unter allen Umständen am besten geeignet ist.

Das Gleiche gilt für Quantenalgorithmen.

Es gibt keine einzige Implementierung der Zustandsvorbereitung, die immer die beste ist. Einige verwenden weniger Qubits. Einige sind genauer. Einige haben eine geringere Tiefe. Die Wahl der besten Zustandsvorbereitung hängt also von dem System ab, das Sie verwenden, aber auch davon, was sonst noch vor sich geht: Was tun Sie außer der Zustandsvorbereitung noch? Die beste Implementierung wird nicht nur auf der Ebene der Funktionsblöcke entschieden, sondern auch auf der Systemebene.

Selbst für einfache Quantenaddierer gibt es mehrere Implementierungen. Man könnte einen einfachen Ripple-Addierer bauen oder Quantenarithmetik mit der Quanten-Fourier-Transformation (QFT) durchführen.

Aus diesem Grund bieten die besten Frameworks für die Erzeugung von Quantenschaltungen mehrere Optionen an - und treffen vielleicht selbst eine optimale Wahl -, anstatt Sie zu zwingen, jedes Mal eine einzige fest kodierte Implementierung zu verwenden.

Wikipedia listet 43 verschiedene Sortieralgorithmen auf. Schnellsortierung, Merge-Sortierung, Shell-Sortierung, Bubble-Sortierung, Pigeonhole-Sortierung, Spreadsortierung, Bead-Sortierung, Stooge-Sortierung und viele mehr.

Warum so viele?

Denn unterschiedliche Sortieralgorithmen sind unter verschiedenen Umständen nützlich.

  • Einige (z. B. Bubble) sind einfach zu implementieren und daher für den Unterricht nützlich.
  • Einige (Merge-Sortierung, Heap-Sortierung) haben eine relativ niedrige Grenze für die Anzahl der im schlimmsten Fall auszuführenden Operationen. Wenn sie N Elemente sortieren müssen, werden sie nie mehr als O(N log N) benötigen . Anmerkung: siehe hier für eine Definition von O()
  • Einige (Einfügesortierung, Würfelsortierung) haben eine geringe Anzahl von "Best-Case"-Operationen, was bedeutet, dass sie schnell beendet sind, wenn die Liste bereits sortiert ist. Für N Elemente ist ihr bester Fall O(N)
  • Einige (Heap-Sorten) benötigen sehr wenig Speicherplatz
  • Einige (Bead sort) funktionieren nur mit positiven ganzen Zahlen
  • Einige... nun, Sie verstehen schon.

Ein Ingenieur, der einen Sortieralgorithmus verwenden möchte, tut gut daran, über die Merkmale der zu sortierenden Daten, die Einschränkungen des Prozessors, die Verfügbarkeit paralleler Prozessoren und viele andere Einschränkungen nachzudenken. Obwohl einige Algorithmen beliebter sind als andere, gibt es keinen einzigen Algorithmus, der unter allen Umständen am besten geeignet ist.

Das Gleiche gilt für Quantenalgorithmen.

Es gibt keine einzige Implementierung der Zustandsvorbereitung, die immer die beste ist. Einige verwenden weniger Qubits. Einige sind genauer. Einige haben eine geringere Tiefe. Die Wahl der besten Zustandsvorbereitung hängt also von dem System ab, das Sie verwenden, aber auch davon, was sonst noch vor sich geht: Was tun Sie außer der Zustandsvorbereitung noch? Die beste Implementierung wird nicht nur auf der Ebene der Funktionsblöcke entschieden, sondern auch auf der Systemebene.

Selbst für einfache Quantenaddierer gibt es mehrere Implementierungen. Man könnte einen einfachen Ripple-Addierer bauen oder Quantenarithmetik mit der Quanten-Fourier-Transformation (QFT) durchführen.

Aus diesem Grund bieten die besten Frameworks für die Erzeugung von Quantenschaltungen mehrere Optionen an - und treffen vielleicht selbst eine optimale Wahl -, anstatt Sie zu zwingen, jedes Mal eine einzige fest kodierte Implementierung zu verwenden.

Über "Der Podcast des Qubit-Typen"

Der Podcast wird von The Qubit Guy (Yuval Boger, unser Chief Marketing Officer) moderiert. In ihm diskutieren Vordenker der Quanteninformatik über geschäftliche und technische Fragen, die das Ökosystem der Quanteninformatik betreffen. Unsere Gäste geben interessante Einblicke in Quantencomputer-Software und -Algorithmen, Quantencomputer-Hardware, Schlüsselanwendungen für Quantencomputer, Marktstudien der Quantenindustrie und vieles mehr.

Wenn Sie einen Gast für den Podcast vorschlagen möchten, kontaktieren Sie uns bitte .

Siehe auch

Keine Artikel gefunden.

Erstellen Sie Quantensoftware ohne Grenzen 

Kontakt