Senin, 25 Februari 2013

Merge Sort pada Java

Hmmmm.. . dari sekian banyak metode sorting, saya sangat tertarik dengan metode ini. Mungkin karena pengurutan bilangan/nilainya berbeda dengan yang lain. Metode ini menggabungkan antara bilangan/nilai yang pertama dengan bilangan/nilai yang kedua. Meskipun bilangan yang di inputkan awalnya tidak beraturan, hasilnya nanti akan tetap berurut. :D  ya iya lah,, namanya juga metode sorting. Ya pasti berurut dong.. :-)
berikut ini merupakan programnya :D walaupun agak terlalu panjang mungkin..
selamat mencoba !!! :-)
class merge
{
      public static void main(String Arg[])
      {
            int nilai1[]; int nilai2[]; int nilaigab[];

            nilai1 = new int[5];
            nilai2 = new int[5];
            nilaigab= new int[10];
            int i, j, k, temp;
            nilai1[0]=50;
            nilai1[1]=90;
            nilai1[2]=65;
            nilai1[3]=100;
            nilai1[4]=40;
            nilai2[0]=80;
            nilai2[1]=75;
            nilai2[2]=85;
            nilai2[3]=60;
            nilai2[4]=70;

            System.out.print("Nilai Pertama    : ");
            for ( i = 0 ; i <= 4 ; i++ )
            {
                  System.out.print(" " +nilai1[i]);
            }
            System.out.println();
            System.out.print("Nilai Kedua    : ");
            for ( i = 0 ; i <= 4 ; i++ )
            {
                  System.out.print(" " +nilai2[i]);
            }
            for ( i = 0 ; i <= 3 ; i++ )
            {
                  for ( j = i + 1 ; j <= 4 ; j++)
                  {
                        if( nilai1[i] > nilai1[j])
                        {
                              temp = nilai1[i];
                              nilai1[i] = nilai1[j];
                              nilai1[j] = temp;
                        }
                        if( nilai2[i] > nilai2[j])
                        {
                              temp = nilai2[i];
                              nilai2[i] = nilai2[j];
                              nilai2[j] = temp;
                        }
                  }
            }
            for(i=j=k=0; i<=9;)
            {
                  if ( nilai1[j] <=  nilai2[k] )
                  {
                        nilaigab[i++] = nilai1[j++];
                  }
                  else
                  {
                        nilaigab[i++] = nilai2[k++];
                  }
                  if ( j==5 || k==5 )
                        break;
            }
            for(;j <= 4;)
            {
                  nilaigab[i++] = nilai1[j++];
            }
            for(;k <= 4;)
            {
                  nilaigab[i++] = nilai2[k++];
            }
            System.out.println();
            System.out.print("Hasil Pengurutan: ");
            for ( i = 0 ; i <= 9 ; i++ )
            {
                  System.out.print(" " +nilaigab[i]);
            }
      }
}
maka hasilnya akan tampak seperti di bawah ini :

3 komentar:
Write komentar
  1. Waduhhh sakit matanya lihat programnya, lurus aja :) hahahhaha

    Tempat Download Program

    BalasHapus
    Balasan
    1. hhahah,, iya ya pak,, sakit juga mata saya..

      Hapus
    2. ok pak,, sudah saya perbaiki.. :)

      Hapus