Heim >Java >javaLernprogramm >Detaillierte Erläuterung des in Java implementierten Einfügungssortierungsalgorithmus

Detaillierte Erläuterung des in Java implementierten Einfügungssortierungsalgorithmus

王林
王林Original
2024-02-19 12:56:11526Durchsuche

Detaillierte Erläuterung des in Java implementierten Einfügungssortierungsalgorithmus

Detaillierte Erläuterung der Implementierungsmethode des Java-Einfügungssortierungsalgorithmus

Einfügungssortierung ist ein einfacher und intuitiver Sortieralgorithmus. Sein Prinzip besteht darin, die zu sortierende Sequenz in sortierte und unsortierte Teile zu unterteilen und sie jedes Mal unsortiert zu halten. Nehmen Sie ein Element und fügen Sie es an der entsprechenden sortierten Position ein. Die Implementierungsmethode des Einfügungssortierungsalgorithmus ist relativ einfach. Die spezifische Implementierungsmethode wird im Folgenden ausführlich vorgestellt und entsprechende Codebeispiele angegeben.

  1. Algorithmusidee
    Angenommen, Sie möchten ein ganzzahliges Array arr in aufsteigender Reihenfolge sortieren. Zunächst wird arr[0] als sortierter Teil und die übrigen Elemente als unsortierter Teil betrachtet. Wenn das aktuell einzufügende Element arr[i] ist (i beginnt bei 1), suchen Sie auf dieser Grundlage die Position j, an der arr[i] aus dem sortierten Teil arr[0:i-1] eingefügt werden soll, und dann wird arr[i] an Position j eingefügt und alle Elemente von arr[j:i-1] werden nacheinander um eine Position nach hinten verschoben.
  2. Code-Implementierung
    Das Folgende ist ein Codebeispiel für die Implementierung des Einfügungssortierungsalgorithmus in der Java-Sprache:
public class InsertionSort {
    public static void insertionSort(int[] arr) {
        int n = arr.length;
        for (int i = 1; i < n; ++i) {
            int key = arr[i];
            int j = i - 1;

            // 将已排序的元素依次向后移动,直到找到arr[i]应该插入的位置
            while (j >= 0 && arr[j] > key) {
                arr[j + 1] = arr[j];
                j = j - 1;
            }
            arr[j + 1] = key;
        }
    }

    public static void main(String[] args) {
        int[] arr = {5, 2, 8, 3, 1};
        insertionSort(arr);
        System.out.println("排序后的数组:");
        for (int num : arr) {
            System.out.print(num + " ");
        }
    }
}
  1. Algorithmusanalyse
    Die zeitliche Komplexität des Einfügungssortierungsalgorithmus beträgt O(n^2), wobei n die Zahl ist der zu sortierenden Elemente. Im besten Fall, das heißt, das zu sortierende Array ist bereits sortiert, beträgt die zeitliche Komplexität der Einfügungssortierung O(n). Im schlimmsten Fall ist das zu sortierende Array in umgekehrter Reihenfolge und die zeitliche Komplexität der Einfügungssortierung beträgt O(n^2). Die Einfügungssortierung ist ein stabiler Sortieralgorithmus, da sich die relativen Positionen gleicher Elemente vor und nach der Sortierung nicht ändern.

Zusammenfassend stellt dieser Artikel die Implementierungsmethode des Java-Einfügungssortierungsalgorithmus im Detail vor und gibt entsprechende Codebeispiele. Einfügungssortierung ist ein einfacher und intuitiver Sortieralgorithmus, der für kleine Arrays oder grundsätzlich geordnete Arrays geeignet ist. In praktischen Anwendungen kann die Einfügungssortierung durch andere effizientere Sortieralgorithmen ersetzt werden. Das Verständnis der Prinzipien und Implementierungsmethoden der Einfügungssortierung ist jedoch für das Erlernen anderer Sortieralgorithmen von großem Nutzen.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des in Java implementierten Einfügungssortierungsalgorithmus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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