Rabu, 08 April 2015

Insertion sort Dan Quick sort




1.      Buatlah 2 program pengurutan dengan menggunakan metode insertion sort da quick sort dengan jumlah data sebanyak N bilangan acak T.
Input :
Nilai N dan T sejumlah N

Output :
a.       Urutan bilangan secara Ascending
b.      Urutan bilangan secara descending

·         INSERTION SORT

#include<iostream>
using namespace std;
int n;
int data[30],data2[30];

void input()
{
      cout<<"MASUKKAN JUMLAH DATA= ";cin>>n;
      cout<<"==============================="<<endl;
      for(int i=0;i<n;i++)
      {
            cout<<"MASUKKAN DATA KE-"<<i+1<<" = ";cin>>data[i];
            data2[i]=data[i];
      }
      cout<<"==============================="<<endl;
      cout<<endl;
}
void tampil()
{
      for(int i=0;i<n;i++)
      {
            cout<<data[i]<<" ";
      }
      cout<<endl;
}
void tampil1()
{
      for(int i=0;i<n;i++)
      {
            cout<<data2[i]<<" ";
      }
      cout<<endl;
}

void insertion_sort_asc()
{
      int temp,i,j;
      for(i=0;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;
      tampil();
      }
      cout<<endl;
}

void insertion_sort_desc()
{
      int temp,i,j;
      for(i=0;i<n;i++)
      {
            temp=data2[i];
            j=i-1;
            while(data2[j]<temp&&j>=0)
            {
                  data2[j+1]=data2[j];
                  j--;
            }
      data2[j+1]=temp;
      tampil1();
      }
      cout<<endl;
}
main()
{
      cout<<"\t\t==========================="<<endl;
      cout<<"\t\t||PROGRAM INSERTION SORT||"<<endl;
      cout<<"\t\t==========================="<<endl<<endl;
      cout<<"=========================================="<<endl;
      cout<<"||NAMA           =CECEP SURIYADI B ||"<<endl;
      cout<<"||NIM            =1418150          ||"<<endl;
      cout<<"||KELAS          =B                ||"<<endl;
      cout<<"||MAKUL          =STRUKTUR KOMPUTER      ||"<<endl;
      cout<<"=========================================="<<endl<<endl;
      input();
      cout<<"Tampilan Ascending"<<endl;
      cout<<"==================="<<endl;
      insertion_sort_asc();
      cout<<"Tampilan Discending"<<endl;
      cout<<"==================="<<endl;
      insertion_sort_desc();
           
}
Source code


Tampilan
·         QUICK SORT

#include <iostream>
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 Input()
{
      cout<<"Masukkan jumlah data = ";
      cin>>n;
      cout<<"_____________________________________ "<<endl<<endl;
      for(int i=0;i<n;i++)
      {
            cout<<"Masukkan data ke-"<<(i+1)<<" = ";
            cin>>data[i];
            data2[i] = data[i];
      }
      cout<<endl;
}

void Tampil()
{
      for(int i=0;i<n;i++)
      {
            cout<<data[i]<<" ";
      }
      cout<<endl;
}
void Tampil1()
{
      for(int i=0;i<n;i++)
      {
            cout<<data[i]<<" ";
      }
      cout<<endl;
}

void QuickSort_Asc(int L, int R)
{
      int i, j;
      int mid;
     
      i = L;
      j = R;
      mid = data[(L+R) / 2];
      do
      {
            while (data[i] < mid) i++; while (data[j] > mid) j--; if (i <= j)
            {
                  tukar(i,j);
                  i++;
                  j--;
            };
            Tampil();
      }
      while (i < j);
      if (L < j) QuickSort_Asc(L, j);
      if (i < R) QuickSort_Asc(i, R);
}



void QuickSort_Desc(int L, int R) //the best sort i've ever had :)
{
      int i, j;
      int mid;
     
      i = L;
      j = R;
      mid = data[(L+R) / 2];
      do
      {
            while (data[i] > mid) i++; while (data[j] < mid) j--;
             if (i <= j)
            {
                  tukar(i,j);
                  i++;
                  j--;
            };
            Tampil1();
      }
      while (i < j);
      if (L < j) QuickSort_Desc(L, j);
      if (i < R) QuickSort_Desc(i, R);
}

main()
{
      cout<<"\t\t==========================="<<endl;
      cout<<"\t\t||PROGRAM QUICK SORT||"<<endl;
      cout<<"\t\t==========================="<<endl<<endl;
      cout<<"=========================================="<<endl;
      cout<<"||NAMA           =CECEP SURIYADI B ||"<<endl;
      cout<<"||NIM            =1418150          ||"<<endl;
      cout<<"||KELAS          =B                ||"<<endl;
      cout<<"||MAKUL          =STRUKTUR KOMPUTER      ||"<<endl;
      cout<<"=========================================="<<endl<<endl;

      Input();
      cout<<"\t**** Proses Quick Sort ****"<<endl<<endl<<endl;
      cout<<"Proses Dengan Ascending"<<endl;
      cout<<"_____________________________________________ "<<endl<<endl;
      Tampil();
      QuickSort_Asc(0,n-1);
      cout<<"_____________________________________________ "<<endl<<endl;
            cout<<"Proses Dengan Descending"<<endl;
      cout<<"_____________________________________________ "<<endl<<endl;
            QuickSort_Desc(0,n-1);

}
Source Code
Tampilan
Paraf Aslab