Heim  >  Artikel  >  Java  >  Was ist der effiziente Weg, geordnete Arrays in Java zusammenzuführen?

Was ist der effiziente Weg, geordnete Arrays in Java zusammenzuführen?

王林
王林nach vorne
2020-12-14 16:00:492131Durchsuche

Was ist der effiziente Weg, geordnete Arrays in Java zusammenzuführen?

Werfen wir zunächst einen Blick auf die ursprüngliche Frage:

(Teilen von Lernvideos: Java-Lehrvideo)

/**
 * 
 ClassName: MergeSortArray <br/>
 * 
 Function: 合并有序数组<br/>
 *   [1, 2, 2, 5]
 *   [3, 4, 7, 8, 9]
 *
 *
 */

Ideenanalyse:

Vergleich des Verschiebens von Doppelzeigern von vorne nach hinten und anschließendes Kopieren des Rests Daten zu Beim Zusammenführen von Arrays ist dies tatsächlich der Kerncode der Zusammenführungssortierung (zuerst teilen und dann zusammenführen) ist der Prozess des Teilens und Eroberns.

Implementierungscode:

public static int[] mergeSortArray(int[] a, int[] b){
        int length1 = a.length, length2 = b.length;
        int[] merge = new int[length1 + length2];
        int i = 0, j = 0, k = 0;
        while(i < length1 && j < length2){
            if(a[i] <= b[j]){
                merge[k++] = a[i++];
            }else{
                merge[k++] = b[j++];
            }
        }
        while(i < length1){
            merge[k++] = a[i++];
        }
        while(j < length2){
            merge[k++] = b[j++];
        }
        return merge;
    }


    public static void main(String[] args) {
        int[] a = {1, 2, 2, 5};
        int[] b = {3, 4, 7, 8, 9};
        int[] merge = mergeSortArray(a, b);
        for(int i = 0; i < merge.length; i++){
            System.out.println(merge[i]);
        }
    }

Laufendes Ergebnis:

1
2
2
3
4
5
7
8
9

Verwandte Empfehlungen: Java-Einführungs-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist der effiziente Weg, geordnete Arrays in Java zusammenzuführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen