Heim > Java > javaLernprogramm > Hauptteil

Was ist Heap-Sortierung in Java? Einführung in die Heap-Sortierung

青灯夜游
Freigeben: 2018-10-22 17:59:56
nach vorne
3160 Leute haben es durchsucht

Der Inhalt dieses Artikels ist: Was ist Heap-Sortierung in Java? Einführung in die Heap-Sortierung. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.

  • Einführung in die Heap-Sortierung:
    Die Heap-Sortierung kann in zwei Stufen unterteilt werden. In der Heap-Konstruktionsphase reorganisieren wir das ursprüngliche Array in einen Heap; in der sinkenden Sortierphase entfernen wir dann alle Elemente der Reihe nach aus dem Heap und erhalten das sortierte Ergebnis.
    1. Heap-Konstruktion: Eine effektive Methode besteht darin, die Sink-Funktion von rechts nach links zu verwenden, um den Sub-Heap zu erstellen. Jede Position des Arrays hat einen Wurzelknoten eines Sub-Heaps, und sink() ist auch auf diese Sub-Heaps anwendbar. Wenn sich die beiden untergeordneten Knoten eines Knotens bereits im Heap befinden, wird die Methode sink() aufgerufen Der Knoten kann sie in einem Heap speichern. Wir können den Sub-Heap der Größe 1 überspringen, da für den Sub-Heap der Größe 1 kein sink() erforderlich ist, d.
    2. Um den Heap zu sortieren, erstellen wir im ersten Schritt einen Heap. In diesem Heap ist der Wurzelknoten immer der Knoten mit dem maximalen Wert, also tauschen wir den Wert des Wurzelknotens mit dem letzten Wert aus Array. Verwenden Sie einfach sink(), um die Struktur des Heaps beizubehalten.

  • Spezifische Code-Implementierung:

public class PQSort{
	public static void main(String[] args){
		int[] a = {9,1,7,5,3,9,12,56,21,45};
		sort(a);
		for(int i=0;i<a.length system.out.print public int for>=0;k--){
				sink(a,k,N);
			}
			//通过不断把堆中最大值放到数组的后面来排序
			while(N>0){
				exch(a,0,N--);
				sink(a,0,N);
			}
	}
	//下沉函数
	private static void sink(int[] a, int i, int n){
		while(2*i+1a[j]) break;
			exch(a,i,j);
			i=j;
		}
	}
	//交换函数
	private static void exch(int[] a, int i, int j){
		int temp = a[i];
		a[i] = a[j];
		a[j] = temp;
	}
}</a.length>
Nach dem Login kopieren

Laufende Ergebnisse:

Was ist Heap-Sortierung in Java? Einführung in die Heap-Sortierung

Das obige ist der detaillierte Inhalt vonWas ist Heap-Sortierung in Java? Einführung in die Heap-Sortierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage