About Me

Followers

Wednesday, November 2, 2011

praktikum marge sort

nih ada lagi data yang dari C++ tentang marge sorf tinggal copy aja mumpung masih hangat.....

#include <cstdlib>
#include <iostream>

using namespace std;

void masuk_data(int A[], int n){
     int i;
     for(i=0;i<n;i++){
        cout<<"Data ke-"<<i+1<<"=";
        cin>>A[i];               
       }
     }

void cetak_data(const int A[], int n){
     int i;
     for(i=0;i<n;i++)
         cout<<A[i]<<" ";
         cout<<endl;               
     }
void merge(int a[100],int kiri,int tengah,int kanan){
     int bagianKiri,posTemp,banyakElemen,i;
     int temp[100];
     
     bagianKiri=tengah-1;
     posTemp=kiri;
     banyakElemen=kanan-kiri+1;
     
     while((kiri<=bagianKiri)&&(tengah<=kanan))
     if((a[kiri]<=a[tengah])){
       temp[posTemp]=a[kiri];
       posTemp=posTemp+1;
       kiri=kiri+1;                                  
      }
      
      else{
       temp[posTemp]=a[tengah];
       posTemp=posTemp+1;
       tengah=tengah+1;          
      }
      
      while((kiri<=bagianKiri)){
      temp[posTemp]=a[kiri];
      posTemp=posTemp+1;
      kiri=kiri+1;                          
      }
      
      while((tengah<=kanan)){
      temp[posTemp]=a[tengah];
      posTemp=posTemp+1;
      tengah=tengah+1;                       
      }
      
      for(i=1;i<=banyakElemen;i++){
       a[kanan]=temp[kanan];
       kanan=kanan-1;                             
      }
     }

void merge_sort(int A[100], int kiri, int kanan){
     int tengah;
     if((kiri<kanan)){
      tengah=(kiri+kanan)/2;
      merge_sort(A,kiri,tengah);
      merge_sort(A,tengah+1,kanan);
      merge(A,kiri,tengah+1,kanan);                 
     }
     }     


int main(int argc, char *argv[])
{   
    int n;
    int data[100];
    cout<<"Berapa data array : ";
    cin>>n;
    masuk_data(data,n);
    cetak_data(data,n);
    merge_sort(data,0,n-1);
    cetak_data(data,n);    
    system("PAUSE");
    return EXIT_SUCCESS;
}

semoga bermanfaat .....

0 Komentar Terbaik

Post a Comment