Skip to content Skip to sidebar Skip to footer

Penjelasan Contoh Program Merge Sort C++ Pengurutan Sederhana

Program Merge Sort C++ merupakan algoritma pengurutan dalam ilmu komputer yang dirancang untuk memenuhi kebutuhan pengurutan atas suatu rangkaian data yang tidak memungkinkan untuk ditampung dalam memori komputer karena jumlahnya yang terlalu besar. Algoritma program merge sort c++ ini ditemukan oleh John von Neumann tepat pada tahun 1945.

Algoritma coding merge sort bahasa c++ ini membagi (split) table menjadi dua tabel sama besar. 
Masing-masing tabel diurutkan secara rekursif, dan kemudian digabungkan kembali untuk membentuk table yang terurut. Implementasi dasar dari algoritma marge sort c++ ini memakai tiga buah tabel, dua diantaranya untuk menyimpan elemen dari tabel yang telah dibagi dua dan satu untuk menyimpan elemen yang telah teurut. Namun metode program merge sort c++ ini bisa juga dilakukan langsung pada dua tabel, sehingga menghemat ruang atau memori yang dibutuhkan. Di bawah ini merupakan algoritma metode merge sort c++ yang dilakukan pada 2 tabel.

Algoritma Merge Sort C++ Dua Tabel

Algoritma Metode Merge sort c++ ini sebenernya lebih cepat dibandingkan heap sort untuk tabel yang lebih besar. Tetapi, algoritma ini membutuhkan setidaknya ruang / memori 2x lebih besar karena dilakukan secara rekursif dan juga memakai dua tabel. Hal ini menyebabkan algoritma ini kurang banyak dipakai.
Metode Merge sort menggabungkan 2 ide utama bertujuan untuk meningkatkan runtimenya:
  1. Array kecil mengambil langkah-langkah untuk menyortir lebih sedikit dari array besar.
  2. Dan Lebih sedikit langkah yang diperlukan untuk membangun sebuah data array terurut dari dua buah array terurut dari pada dari dua buah array tak terurut.

Contoh Program Merge Sort Bahasa C ++

Dibawah ini adalah program marge sort c++. Silahkan anda salin coding marge sort c++ ini ke Dev-C++ anda !
#include <iostream>
#include <conio.h>
using namespace std;

int a[50];
void merge(int,int,int);
void merge_sort(int low,int high)
{
 int mid;
 if(low<high)
 {
  mid=(low+high)/2;
  merge_sort(low,mid);
  merge_sort(mid+1,high);
  merge(low,mid,high);
 }
}
void merge(int low,int mid,int high)
{
 int h,i,j,b[50],k;
 h=low;
 i=low;
 j=mid+1;
 while((h<=mid)&&(j<=high))
 {
  if(a[h]<=a[j])
  {
   b[i]=a[h]; h++;
  }
  else
  {
   b[i]=a[j]; j++;
  } i++;
 }
 if(h>mid)
 {
  for(k=j;k<=high;k++)
  {
   b[i]=a[k]; i++;
  }
 }
 else
 {
  for(k=h;k<=mid;k++)
  {
   b[i]=a[k]; i++;
  }
 }
 for(k=low;k<=high;k++)
  a[k]=b[k];
}
main()
{
 int num,i;
 cout<<"Hardifal "<<endl;
 cout<<"---------------------------"<<endl;
 cout<<"    ALGORITMA MERGE SORT C++ "<<endl;
 cout<<"---------------------------"<<endl;
 cout<<endl;
 cout<<"Masukkan Banyak Bilangan: ";cin>>num;
 cout<<endl;
 cout<<"Sekarang masukkan "<< num <<" Bilangan yang ingin Diurutkan :"<<endl;
 for(i=1;i<=num;i++)
 {
  cout<<"Bilangan ke-"<<i<<" ";cin>>a[i] ;
 }
 merge_sort(1,num);
 cout<<endl;
 cout<<"Hasil akhir pengurutan :"<<endl;
 cout<<endl;
 for(i=1;i<=num;i++)
  cout<<a[i]<<" ";
 cout<<endl<<endl<<endl<<endl;
 }

Output Program Program Marge Sort C++

Penjelasan dan Contoh Program Merge Sort C++ Pengurutan Sederhana


Post a comment for "Penjelasan Contoh Program Merge Sort C++ Pengurutan Sederhana"