Heim  >  Artikel  >  Java  >  Ausführliche Erklärung zum Sortieren von Arrays mithilfe der Arrays-Klasse in Java

Ausführliche Erklärung zum Sortieren von Arrays mithilfe der Arrays-Klasse in Java

PHPz
PHPzOriginal
2023-07-25 10:13:342391Durchsuche

Detaillierte Erklärung, wie Java die Arrays-Klasse zum Sortieren von Arrays verwendet

Bei der Java-Programmierung ist es häufig erforderlich, Arrays zu sortieren. Um den Sortiervorgang zu vereinfachen, stellt Java die Klasse Arrays bereit, die einige häufig verwendete Sortiermethoden enthält. In diesem Artikel wird die Sortiermethode der Arrays-Klasse ausführlich vorgestellt und ihre Verwendung anhand von Codebeispielen demonstriert.

  1. Sortiermethoden der Arrays-Klasse

Die Arrays-Klasse bietet zwei überladene Sortiermethoden, nämlich sort und parallelSort. Ersteres wird zum seriellen Sortieren von Arrays verwendet, während letzteres zum parallelen Sortieren von Arrays verwendet wird.

1.1 Sortiermethode

Die Sortiermethode wird verwendet, um das Array seriell zu sortieren. Es verfügt über mehrere überladene Methoden und je nach Sortieranforderungen können verschiedene Methoden ausgewählt werden.

Der Beispielcode lautet wie folgt:

import java.util.Arrays;

public class ArraySortExample {
    public static void main(String[] args) {
        int[] arr = {5, 2, 9, 1, 3};
        System.out.println("排序前:" + Arrays.toString(arr));
        Arrays.sort(arr);
        System.out.println("排序后:" + Arrays.toString(arr));
    }
}

Die laufenden Ergebnisse lauten wie folgt:

排序前:[5, 2, 9, 1, 3]
排序后:[1, 2, 3, 5, 9]

1.2 parallelSort-Methode

Die parallelSort-Methode wird verwendet, um Arrays parallel zu sortieren. Im Vergleich zur Sortiermethode kann der Sortiervorgang schneller abgeschlossen werden und eignet sich für Arrays mit größerem Maßstab.

Der Beispielcode lautet wie folgt:

import java.util.Arrays;

public class ArrayParallelSortExample {
    public static void main(String[] args) {
        int[] arr = {5, 2, 9, 1, 3};
        System.out.println("排序前:" + Arrays.toString(arr));
        Arrays.parallelSort(arr);
        System.out.println("排序后:" + Arrays.toString(arr));
    }
}

Die laufenden Ergebnisse lauten wie folgt:

排序前:[5, 2, 9, 1, 3]
排序后:[1, 2, 3, 5, 9]
  1. Sortieralgorithmus

Die Sortiermethode in der Arrays-Klasse verwendet den optimierten Schnellsortierungsalgorithmus (Dual-Pivot Quicksort), der Folgendes bietet In den meisten Fällen bessere Leistung. Hohe Leistung. Dieser Algorithmus basiert auf der Idee des Teilens und Herrschens, indem er zwei Pivot-Elemente auswählt, um das Array in drei Teile zu unterteilen: den Teil, der kleiner als das Pivot-Element ist, den Teil, der dem Pivot-Element entspricht, und den Teil, der größer als das Pivot-Element ist Element. Anschließend wird die Sortieroperation rekursiv für die geteilten zwei Teile durchgeführt.

Die zeitliche Komplexität des Schnellsortierungsalgorithmus beträgt O(nlogn), wobei n die Länge des Arrays ist.

  1. Hinweise

Wenn Sie die Arrays-Klasse zum Sortieren von Arrays verwenden, müssen Sie die folgenden Punkte beachten:

3.1 Die Comparable-Schnittstelle muss implementiert werden.

Wenn Sie das Objektarray einer benutzerdefinierten Klasse sortieren möchten, Die Klasse muss die Schnittstelle Comparable implementieren und die Methode CompareTo überschreiben. Dies ermöglicht einen korrekten Vergleich der Objektgrößen beim Sortieren.

Der Beispielcode lautet wie folgt:

import java.util.Arrays;

class Student implements Comparable<Student> {
    private String name;
    private int score;

    public Student(String name, int score) {
        this.name = name;
        this.score = score;
    }

    @Override
    public int compareTo(Student o) {
        return this.score - o.score;
    }

    @Override
    public String toString() {
        return name + ": " + score;
    }
}

public class StudentSortExample {
    public static void main(String[] args) {
        Student[] students = {new Student("Tom", 90), new Student("Jerry", 80)};
        System.out.println("排序前:" + Arrays.toString(students));
        Arrays.sort(students);
        System.out.println("排序后:" + Arrays.toString(students));
    }
}

Die laufenden Ergebnisse lauten wie folgt:

排序前:[Tom: 90, Jerry: 80]
排序后:[Jerry: 80, Tom: 90]

3.2 Leistungsoptimierung der parallelen Sortierung

Wenn parallele Sortierung anwendbar ist und die Länge des Arrays kleiner als der Standardschwellenwert (8192) ist wird in der Arrays-Klasse verwendet), der Einfügungssortierungsalgorithmus wird zum Sortieren verwendet. Der Einfügungssortierungsalgorithmus bietet eine bessere Leistung bei kleinen Datenmengen.

Um die Leistung der parallelen Sortierung weiter zu verbessern, können Sie die Verwendung des herkömmlichen Zusammenführungssortierungsalgorithmus erzwingen, indem Sie die Systemeigenschaft java.util.Arrays.useLegacyMergeSort auf true setzen. Dies vermeidet die Verwendung der Einfügungssortierung bei paralleler Sortierung. java.util.Arrays.useLegacyMergeSort为true,强制使用传统的归并排序算法。这样可以在并行排序的情况下避免使用插入排序。

示例代码如下:

import java.util.Arrays;

public class ArrayParallelSortPerformanceExample {
    public static void main(String[] args) {
        int[] arr = {5, 2, 9, 1, 3};
        System.out.println("排序前:" + Arrays.toString(arr));
        System.setProperty("java.util.Arrays.useLegacyMergeSort", "true");
        Arrays.parallelSort(arr);
        System.out.println("排序后:" + Arrays.toString(arr));
    }
}
  1. 总结

本文详细介绍了Java中使用Arrays类进行数组排序的方法。通过调用sort方法可以对数组进行串行排序,而调用parallelSort方法可以对数组进行并行排序。并行排序的性能优于串行排序,适用于大规模数据。在使用自定义类的对象数组进行排序时,需要实现Comparable接口。同时,通过设置java.util.Arrays.useLegacyMergeSort

Der Beispielcode lautet wie folgt: 🎜rrreee
    🎜Zusammenfassung🎜🎜🎜Dieser Artikel beschreibt die Methode zur Verwendung der Arrays-Klasse für die Array-Sortierung in Java. Arrays können seriell sortiert werden, indem die Methode sort aufgerufen wird, und Arrays können parallel sortiert werden, indem die Methode parallelSort aufgerufen wird. Die parallele Sortierung bietet eine bessere Leistung als die serielle Sortierung und eignet sich für große Datenmengen. Wenn Sie zum Sortieren ein Objektarray einer benutzerdefinierten Klasse verwenden, müssen Sie die Comparable-Schnittstelle implementieren. Gleichzeitig kann die Leistung der parallelen Sortierung weiter optimiert werden, indem die Eigenschaft java.util.Arrays.useLegacyMergeSort auf „true“ gesetzt wird. Durch die Beherrschung der Sortiermethode der Arrays-Klasse können Array-Sortierprobleme bei der Programmierung effizienter gelöst werden. 🎜

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung zum Sortieren von Arrays mithilfe der Arrays-Klasse in Java. 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