Heim > Java > javaLernprogramm > Hauptteil

So implementieren Sie den Radix-Sortieralgorithmus mit Java

PHPz
Freigeben: 2023-09-19 15:39:15
Original
922 Leute haben es durchsucht

So implementieren Sie den Radix-Sortieralgorithmus mit Java

Wie implementiert man einen Radix-Sortieralgorithmus mit Java?

Der Radix-Sortieralgorithmus ist ein nicht vergleichender Sortieralgorithmus, der basierend auf dem Bitwert von Elementen sortiert. Seine Kernidee besteht darin, die zu sortierenden Zahlen nach Einer-, Zehner-, Hunderter- und anderen Ziffern zu gruppieren und dann jede Ziffer der Reihe nach zu sortieren, um schließlich eine geordnete Reihenfolge zu erhalten. Im Folgenden wird detailliert beschrieben, wie der Radix-Sortieralgorithmus mithilfe von Java implementiert wird, und es werden Codebeispiele bereitgestellt.

Zunächst muss der Basissortieralgorithmus ein zweidimensionales Array vorbereiten, um die zu sortierenden Zahlen zu speichern. Die Anzahl der Zeilen des Arrays wird durch die Anzahl der Ziffern bestimmt. Wenn beispielsweise die maximale Anzahl der zu sortierenden Zahlen n ist, beträgt die Anzahl der Zeilen des Arrays log(n) + 1. In jeder Spalte wird die dieser Ziffer entsprechende Zahl gespeichert.

Als nächstes müssen Sie den Maximalwert unter den zu sortierenden Zahlen ermitteln, um die Anzahl der Ziffern in der Basis zu bestimmen. Dies kann erreicht werden, indem das gesamte Array durchlaufen und der Maximalwert ermittelt wird.

Dann beginnen Sie mit der Radix-Sortierung. Ordnen Sie zunächst die Zahlen entsprechend den einzelnen Ziffern den entsprechenden Buckets zu. Sie können die Zählsortierung verwenden, um diesen Schritt zu erreichen. Die spezifische Methode besteht darin, ein Zählarray mit einer Größe von 10 zu erstellen, die zu sortierenden Zahlen im Array zu durchlaufen, die Zahlen nach einzelnen Ziffern in die entsprechenden Buckets einzutragen und dann die Zahlen in den Buckets zu sortieren. Nach dem Sortieren werden die Zahlen im Bucket wieder in das Array eingefügt, um sie der Reihe nach zu sortieren.

Als nächstes ordnen Sie die Zahlen wieder entsprechend der Zehnerstelle den entsprechenden Eimern zu und sortieren die Zahlen in den Eimern. Nach dem Sortieren werden die Zahlen im Bucket wieder in das Array eingefügt, um sie erneut in der richtigen Reihenfolge zu sortieren.

Wiederholen Sie die obigen Schritte, bis alle Ziffern zugeordnet und sortiert sind. Abschließend werden die Zahlen im zu sortierenden Array geordnet.

Das Folgende ist ein Codebeispiel für die Verwendung von Java zur Implementierung der Radix-Sortierung:

public class RadixSort {
    public static void radixSort(int[] arr) {
        // 找到待排序数组中的最大值,确定需要进行排序的位数
        int max = arr[0];
        for (int i = 1; i < arr.length; i++) {
            if (arr[i] > max) {
                max = arr[i];
            }
        }
      
        // 计算需要进行排序的位数
        int digit = 1;
        while (max / 10 > 0) {
            max /= 10;
            digit++;
        }
      
        // 创建桶和计数数组
        int[][] bucket = new int[10][arr.length];
        int[] count = new int[10];
      
        // 进行基数排序
        for (int i = 0; i < digit; i++) {
            for (int j = 0; j < arr.length; j++) {
                int num = (arr[j] / (int) Math.pow(10, i)) % 10;
                bucket[num][count[num]++] = arr[j];
            }
          
            int k = 0;
            for (int j = 0; j < count.length; j++) {
                if (count[j] != 0) {
                    for (int l = 0; l < count[j]; l++) {
                        arr[k++] = bucket[j][l];
                    }
                    count[j] = 0;
                }
            }
        }
    }
  
    public static void main(String[] args) {
        int[] arr = {432, 524, 236, 679, 321, 546, 457};
        radixSort(arr);
        for (int num : arr) {
            System.out.print(num + " ");
        }
    }
}
Nach dem Login kopieren

Das Obige ist die Methode und das Codebeispiel für die Verwendung von Java zur Implementierung des Radix-Sortierungsalgorithmus. Es ist zu beachten, dass der Radix-Sortieralgorithmus zum Sortieren positiver Ganzzahlen geeignet ist. Negative Ganzzahlen oder Arrays mit negativen Zahlen müssen zum Sortieren zunächst in nichtnegative Zahlen umgewandelt werden.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie den Radix-Sortieralgorithmus mit Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!