Heim Backend-Entwicklung C++ Array-Darstellung des binären Heaps

Array-Darstellung des binären Heaps

Sep 04, 2023 pm 10:45 PM
编程 二叉堆 Array-Darstellung

Ein vollständiger Binärbaum, der der Heap-Sortierungseigenschaft folgt, wird als Binär-Heap bezeichnet.

Basierend darauf, wie ein binärer Heap sortiert ist, kann er in zwei Typen unterteilt werden:

Minimaler Heap ist ein Heap, bei dem der Wert eines Knotens größer oder gleich dem Wert seines übergeordneten Knotens ist. Der Wurzelknoten eines Min-Heaps ist der kleinste.

Max Heap ist ein Heap, bei dem der Wert eines Knotens kleiner oder gleich dem Wert seines übergeordneten Knotens ist. Der Wurzelknoten des Max-Heaps ist der größte.

Der Wert eines binären Heaps wird normalerweise als Array dargestellt. Die Array-Darstellung eines binären Heaps lautet wie folgt:

  • Der Index des Wurzelelements ist 0.

  • Wenn i der Index eines Knotens im Array ist, lauten die Indizes anderer Knoten, die sich auf diesen Knoten beziehen, wie folgt:

    • Linkes Kind: (2*i)+1

    • Rechtes Kind : (2*i )+2

    • Übergeordneter Knoten: (i-1)/2

Mit den oben genannten Array-Darstellungsregeln können wir den Heap als Array darstellen:

Array-Darstellung des binären Heaps

Minimum Heap Array-Darstellung:
1... – Die Wurzel Knoten hat den Mindestwert. Der Wert des Knotens ist größer als der Wert des übergeordneten Knotens. Beispiel:

  • 1

    4

    7
6

9

. Array-Darstellung des binären Heaps10

8

Max Heap Array-Darstellung:
– Der Wurzelknoten hat den Maximalwert. Der Wert des Knotens ist kleiner als der Wert des übergeordneten Knotens. Beispiel:
  • 11

    8

    9
6

4

Array-Darstellung des binären Heaps5

1

Das obige ist der detaillierte Inhalt vonArray-Darstellung des binären Heaps. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Entfernen Sie doppelte Werte mithilfe regulärer Ausdrücke aus dem PHP-Array Entfernen Sie doppelte Werte mithilfe regulärer Ausdrücke aus dem PHP-Array Apr 26, 2024 pm 04:33 PM

Entfernen Sie doppelte Werte mithilfe regulärer Ausdrücke aus dem PHP-Array

Wozu dient das Programmieren und welchen Nutzen hat es, es zu lernen? Wozu dient das Programmieren und welchen Nutzen hat es, es zu lernen? Apr 28, 2024 pm 01:34 PM

Wozu dient das Programmieren und welchen Nutzen hat es, es zu lernen?

Erstellen Sie browserbasierte Anwendungen mit Golang Erstellen Sie browserbasierte Anwendungen mit Golang Apr 08, 2024 am 09:24 AM

Erstellen Sie browserbasierte Anwendungen mit Golang

Der Schlüssel zum Programmieren: Die Leistungsfähigkeit von Python für Anfänger freischalten Der Schlüssel zum Programmieren: Die Leistungsfähigkeit von Python für Anfänger freischalten Oct 11, 2024 pm 12:17 PM

Der Schlüssel zum Programmieren: Die Leistungsfähigkeit von Python für Anfänger freischalten

Java leicht gemacht: Ein Leitfaden für Anfänger zur Programmierleistung Java leicht gemacht: Ein Leitfaden für Anfänger zur Programmierleistung Oct 11, 2024 pm 06:30 PM

Java leicht gemacht: Ein Leitfaden für Anfänger zur Programmierleistung

Gestalten Sie die Zukunft: Java-Programmierung für absolute Anfänger Gestalten Sie die Zukunft: Java-Programmierung für absolute Anfänger Oct 13, 2024 pm 01:32 PM

Gestalten Sie die Zukunft: Java-Programmierung für absolute Anfänger

Problemlösung mit Python: Erschließen Sie leistungsstarke Lösungen als Programmieranfänger Problemlösung mit Python: Erschließen Sie leistungsstarke Lösungen als Programmieranfänger Oct 11, 2024 pm 08:58 PM

Problemlösung mit Python: Erschließen Sie leistungsstarke Lösungen als Programmieranfänger

C entmystifizieren: Ein klarer und einfacher Weg für neue Programmierer C entmystifizieren: Ein klarer und einfacher Weg für neue Programmierer Oct 11, 2024 pm 10:47 PM

C entmystifizieren: Ein klarer und einfacher Weg für neue Programmierer

See all articles