/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Fatur
*/
public class Nomer2 {
public static void main(String[] args) {
int[] List1={3,6,16,19,21,23,47,81,95,100};
int[] List2={7,14,22,27,30,31,38,39,55,62};
int[] Hasil= new int[20];//array baru yang isinya 20
merge(List1,10,List2,10,Hasil);//digabung antara List1 & List2, terus dimasukkan ke Hasil
cetak (List1,10,List2,10,Hasil,20);//cetak List1, List2, Hasil
}
public static void merge(int[] List1, int sizeA, int[] List2, int sizeB, int[] Hasil)
{
int indeksA=0, indeksB=0, indeksC=0;
while(indeksA < sizeA && indeksB < sizeB) //membandingkan nilai elemen
if(List1[indeksA] < List2[indeksB]) Hasil[indeksC++] = List1[indeksA++]; //memasukkan nilai yang kecil ke array Hasil
else
Hasil[indeksC++] = List2[indeksB++];
while (indeksA < sizeA) Hasil[indeksC++] = List1[indeksA++]; //jika List1 sudah dimasukkan semua ke array Hasil
while (indeksB < sizeB) Hasil[indeksC++] = List2[indeksB++]; //jika List2 sudah dimasukkan semua ke array Hasil
}
public static void cetak(int[] List1, int sizeA, int[] List2, int sizeB, int[] Hasil, int sizeC) {
System.out.print(" List1 : ");
for(int i=0;i<sizeA;i++) //for nya buat nulis semua isi List1 (rentangnya 0 < List1 < sizeA (size A nya 10))
System.out.print(List1[i] + " ");
System.out.println(" ");
System.out.print(" List2 : ");
for(int j=0;j<sizeB;j++)//for nya buat nulis semua isi List2 (rentangnya 0 < List2 < sizeA (size B nya 10))
System.out.print(List2[j] + " ");
System.out.println(" ");
System.out.print(" Hasil : ");
for(int k=0;k<sizeC;k++)//for nya buat nulis semua isi dari hasil penggabungan (isinya ada 20 (didapet dari 10 + 10)
System.out.print(Hasil[k] + " ");
System.out.println(" ");
}
}
Tidak ada komentar:
Posting Komentar