Maison >Java >Javacommencer >Quel est le moyen efficace de fusionner des tableaux ordonnés en Java
Jetons d'abord un coup d'œil à la question d'origine :
(Partage de vidéos d'apprentissage : vidéo d'enseignement Java)
/** * ClassName: MergeSortArray <br/> * Function: 合并有序数组<br/> * [1, 2, 2, 5] * [3, 4, 7, 8, 9] * * */
Analyse des idées :
Les pointeurs doubles se déplacent d'avant en arrière pour comparaison, puis copient les données restantes dans le tableau fusionné. En fait, c'est aussi le code de base du tri par fusion (divisé d'abord, puis). fusionner) est une partie divisée et conquise de la gouvernance.
Code d'implémentation :
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]); } }
Résultat d'exécution :
1 2 2 3 4 5 7 8 9
Recommandations associées : Tutoriel d'introduction à Java
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!