Heim  >  Artikel  >  Java  >  Detaillierte Einführung in die Array-Sortierung

Detaillierte Einführung in die Array-Sortierung

零下一度
零下一度Original
2017-07-23 17:22:001237Durchsuche

Eine Übersicht

1. Doppellagige Schleife

Sortieren Wird normalerweise durch eine doppelschichtige Schleife implementiert, wobei die äußere Schleife die Anzahl der Schleifenrunden steuert und die innere Schleife eine einfache Sortierung implementiert. Der Index der äußeren Schleife reicht von 1 bis arr.length-1, und die Anzahl der Iterationen der inneren Schleife nimmt mit zunehmender Anzahl der Iterationen der äußeren Schleife ab.

Zwei Sprudelmethoden

1. Grundidee

Vergleichen Sie nebenstehend Wenn zwei Elemente die Bedingungen erfüllen, tauschen sie ihre Positionen, sodass das größere Element nach hinten verschoben wird.

2. Algorithmusimplementierung

public static int[] bubbleSort(int[] arr) {for (int i = 1; i < arr.length; i++) {for (int j = 0; j < arr.length - i; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }return arr;
    }

Drei direkte Sortierung

1. Grundidee

Filtern Sie den Maximalwert aus der unsortierten Sequenz heraus und platzieren Sie ihn am Ende der unsortierten Sequenz. Die äußere Schleife durchläuft eine Schleife und tauscht dabei die Position des Maximalwerts der unsortierten Sequenz mit der Position des letzten Elements der unsortierten Sequenz aus. Der Schlüssel besteht darin, den Index des Maximalwerts zu erhalten. Die direkte Sortierung ist schneller als die Blasensortierung.

Eintrittspunkt der inneren Schleife: Nehmen Sie an, dass das erste Element in der unsortierten Sequenz, dh das Element mit Index 0, der Maximalwert ist, und vergleichen Sie ihn dann mit den verbleibenden Elementen Ermitteln Sie den Index des Maximalwerts.

2. Algorithmusimplementierung

public static int[] directSort(int[] arr) {int len = arr.length;int index;for (int i = 1; i < len; i++) {
            index = 0;for (int j = 1; j <= len - i; j++) {if (arr[index] < arr[j]) {
                    index = j;
                }int temp = arr[len - i];
                arr[len - i] = arr[index];
                arr[index] = temp;
            }
        }return arr;
    }

Vier-Umkehr-Sortierung

1. Grundidee

Um die Positionen zweier Elemente auszutauschen, deren Indexsumme arr.length-1 ist, ist nur eine Schleife erforderlich, und die Anzahl der Schleifen beträgt arr. Länge/2- 1.

2. Algorithmusimplementierung

public static int[] reverseSort(int[] arr) {for (int i = 0; i < arr.length / 2; i++) {int temp = arr[i];
            arr[i] = arr[arr.length - 1 - i];
            arr[arr.length - 1 - i] = temp;
        }return arr;
    }

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Array-Sortierung. 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