Showing posts with label Sorting. Show all posts
Showing posts with label Sorting. Show all posts

Thursday, October 2, 2014

Merge Sort Algorithm Pseudocode in C++

Merge Sort Algorithm Pseudocode in C++ - Oke sobat disini saya akan sharing sedikit tentang materi c++ yaitu materi tentang Merge sort,merge sort adalah pengurutan data ata merge sort dilakukan dengan menggunakan cara divide and conquer yaitu dengan memecah kemudian menyelesaikan setiap bagian kemudian menggabungkannya kembali. Pertama data dipecah menjadi 2 bagian dimana bagian pertama merupakan setengah (jika data genap) atau setengah minus satu (jika data ganjil) dari seluruh data, kemudian dilakukan pemecahan kembali untuk masing-masing blok sampai hanya terdiri dari satu data tiap blok.Setelah itu digabungkan kembali dengan membandingkan pada blok yang sama apakah data pertama lebih besar daripada data ke-tengah+1, jika ya maka data ke-tengah+1 dipindah sebagai data pertama, kemudian data ke-pertama sampai ke-tengah digeser menjadi data ke-dua sampai ke-tengah+1, demikian seterusnya sampai menjadi satu blok utuh seperti awalnya. Sehingga metode merge sort merupakan metode yang membutuhkan fungsi rekursi untuk penyelesaiannya.ini prinsip dari metode merge sort,oke sobat langsung aja ini dia implementasi dari Merge Sort :
view plainprint?
  1. #include <iostream.h>  
  2. #include <conio.h>  
  3. int a[50];  
  4. void merge(int,int,int);  
  5. void merge_sort(int low,int high)  
  6. {  
  7.  int mid;  
  8.  if(low<high)  
  9.  {  
  10.   mid=(low+high)/2;  
  11.   merge_sort(low,mid);  
  12.   merge_sort(mid+1,high);  
  13.   merge(low,mid,high);  
  14.  }  
  15. }  
  16. void merge(int low,int mid,int high)  
  17. {  
  18.  int h,i,j,b[50],k;  
  19.  h=low;  
  20.  i=low;  
  21.  j=mid+1;  
  22.  while((h<=mid)&&(j<=high))  
  23.  {  
  24.   if(a[h]<=a[j])  
  25.   {  
  26.    b[i]=a[h]; h++;  
  27.   }  
  28.   else  
  29.   {  
  30.    b[i]=a[j]; j++;  
  31.   } i++;  
  32.  }  
  33.  if(h>mid)  
  34.  {  
  35.   for(k=j;k<=high;k++)  
  36.   {  
  37.    b[i]=a[k]; i++;  
  38.   }  
  39.  }  
  40.  else  
  41.  {  
  42.   for(k=h;k<=mid;k++)  
  43.   {  
  44.    b[i]=a[k]; i++;  
  45.   }  
  46.  }  
  47.  for(k=low;k<=high;k++)  
  48.   a[k]=b[k];  
  49. }  
  50. void main()  
  51. {  
  52.  int num,i; cout<<"******************************************************************* *************"<<endl;  
  53.  cout<<" MERGE SORT PROGRAM "<<endl;  
  54.  cout<<"******************************************************************* *************"<<endl;  
  55.  cout<<endl<<endl;  
  56.  cout<<"Masukkan Banyak Bilangan: ";cin>>num;  
  57.    cout<<endl;  
  58.  cout<<"Sekarang masukkan "<< num <<" Bilangan yang ingin Diurutkan :"<<endl;  
  59.  for(i=1;i<=num;i++)  
  60.  {  
  61.   cout<<"Bilangan ke-"<<i<<" ";cin>>a[i] ;  
  62.  }  
  63.  merge_sort(1,num);  
  64.  cout<<endl;  
  65.  cout<<"Hasil akhir pengurutan :"<<endl;  
  66.  cout<<endl;  
  67.  for(i=1;i<=num;i++)  
  68.   cout<<a[i]<<" ";  
  69.  cout<<endl<<endl<<endl<<endl;  
  70.    getch();  
  71. }  

Sunday, March 30, 2014

Selection Sort Algorithm Pseudo-Code

Selection Sort Algorithm


Hai teman,di sini saya akan sharing sedikit tentang materi pemrograman c++ yaitu materi tentang Selection sort,Selection sort adalah pengurutan data yang akan menukar  nilai yang terkecil atau terbesar ke posisi ujung dari data nilai yang akan diurutkan. Demikian seterusnya hingga semua daftar dalam keadaan terurut. Proses dasar yang terjadi dalam algoritma ini adalah proses pertukaran nilai (swapping). 

Selection Sort terbagi atas dua macam yaitu:
  • Selection Sort Ascending adalah pengurutan data dari yang kecil ke yang besar
  • Selection Sort Descending adalah pengurutan data dari yang besar ke yang kecil
oke teman semuanya,untuk lebih jelasnya saya akan memberika contoh dari Selection Sort Ascending dan Selection Sort Descending.
SELECTION SORT ASCENDING
#include <iostream.h>
#include <conio.h>
using namespace std;
int data[10],data2[10];
int n;
void tukar(int a,int b){
     int t;
     t=data[b];
     data[b]=data[a];
     data[a]=t;
     }
void selection_sort(){
     int pos,i,j;
     for(int i=1;i<=n-1;i++)
     {
                        pos=i;
                        for(j=i+1;j<=n;j++)
                        {
                        if(data[j]<data[pos])pos=j;
                        }
     if(pos!=i)tukar(pos,i);
     }
}
int main(){
    cout<<"PROGRAM SELECTION SORT ASCENDING"<<endl;
    cout<<"Masukkan Jumlah Data Anda : ";
    cin>>n;
    for(int i=1;i<=n;i++)
    {
            cout<<"Masukkan data ke "<<i<<":";
            cin>>data[i];
            data2[i]=data[i];
    }
selection_sort();
cout<<"\n\n";
//tampillkan data
cout<<"Data Setelah di Sort : ";
for(int i=1; i<=n;i++)
{
        cout<<" "<<data[i];
        }
cout<<"\n\nSorting Selesai";
    getch();       
    return 0;
}
SELECTION SORT DESCENDING
#include <iostream.h>
#include <conio.h>
using namespace std;
int data[10],data2[10];
int n;
void tukar(int a,int b){
     int t;
     t=data[b];
     data[b]=data[a];
     data[a]=t;
     }
void selection_sort(){
     int pos,i,j;
     for(int i=1;i<=n-1;i++)
     {
                        pos=i;
                        for(j=i+1;j<=n;j++)
                        {
                        if(data[j]>data[pos])pos=j;
                        }
     if(pos!=i)tukar(pos,i);
     }
}
int main(){
    cout<<"PROGRAM SELECTION SORT DESCENDING"<<endl;
    cout<<"Masukkan Jumlah Data Anda : ";
    cin>>n;
    for(int i=1;i<=n;i++)
    {
            cout<<"Masukkan data ke "<<i<<":";
            cin>>data[i];
            data2[i]=data[i];
    }
selection_sort();
cout<<"\n\n";
//tampillkan data
cout<<"Data Setelah di Sort : ";
for(int i=1; i<=n;i++)
{
        cout<<" "<<data[i];
        }
cout<<"\n\nSorting Selesai";
    getch();       
    return 0;
}

Insertion Sort Algorithm

Insertion Sort Algorithm

Hai teman,di sini saya akan sharing sedikit tentang materi pemrograman c++ yaitu materi tentang Insertion Sort, Insertion Sort adalah pengurutan data yang akan menggeser  nilai yang terkecil atau terbesar ke posisi ujung dari data nilai yang akan diurutkan. Demikian seterusnya hingga semua daftar dalam keadaan terurut. Proses dasar yang terjadi dalam algoritma ini adalah proses pertukaran nilai (swapping). 

Insertion Sort terbagi atas dua macam yaitu:
  • Insertion Sort Ascending adalah pengurutan data dari yang kecil ke yang besar
  • Insertion Sort Descending adalah pengurutan data dari yang besar ke yang kecil






















oke teman semuanya,untuk lebih jelasnya saya akan memberika contoh dari Insertion Sort Ascending dan Insertion Sort Descending.
INSERTION SORT ASCENDING
#include <iostream.h>
#include <conio.h>
using namespace std;
int data[10],data2[10];
int n,i,temp;
void tukar(int a,int b){
     int t;
     t=data[b];
     data[b]=data[a];
     data[a]=t;
     }
void insertion_sort(){
     int temp,i,j;
     for(i=1;i<=n;i++)
     {
                      temp=data[i];
                      j=i-1;
                      while(data[j]>temp && j>=0)
                      {
                                         data[j+1]=data[j];
                                         j--;
                      }
                       data[j+1]=temp;
     }
}
int main(){
    cout<<"PROGRAM INSERTION SORT"<<endl;
    cout<<"Masukkan Jumlah Data Anda : ";
    cin>>n;
    for(int i=1;i<=n;i++)
    {
            cout<<"Masukkan data ke "<<i<<":";
            cin>>data[i];
            data2[i]=data[i];
    }
insertion_sort();
cout<<"\n\n";
//tampillkan data
cout<<"Data Setelah di Sort : ";
for(int i=1; i<=n;i++)
{
        cout<<" "<<data[i];
        }
cout<<"\n\nSorting Selesai";
    getch();       
    return 0;
}