Saturday, April 22, 2017

SELECTION SORT DAN BINARY SEARCH

Kali ini saya akan posting penggabungan antara selection sort dan binary search sebelum masuk kescript alangkah baiknya kita mempelajari apa itu selection sort dan apa itu binary search.

Selection sort adalah salah satu metode pengurutan dimana data dibandingakan satu persatu sampai data terurutkan secara kecil kebesar atau besar kekecil, contoh ada data 27, 16, 44, 10 maka data akan diurukan seperti gambar dibawah ini, saya beri contoh ascending / kecil kebesar :


step pertama data 27 dan 16 dibandingkan apakah data 27 lebih kecil atau lebih besar dari 16 jika lebih besar maka data akan digeser seperti gambar dibawah :





jika angka lebih kecil maka data tidak digeser :







angka 10 adalah angka terkecil maka data diurukan lagi mulai dari step pertama dengan mengabaikan angka 10 :





Binary search adalah salah satu metode pencarian dimana data harus sudah urut (kecil kebesar atau besar ke kecil) dan data nanti akan dibagi menjadi 3 bagian yaitu low, mid, dan high contoh ada data 1, 2, 3, 4, 5 dan kita akan mencari bilangan 5. maka data dibagi menjadi 3 yaitu  1 dan 2 adalah low, 3 adalah mid, 4 dan 5 adalah high, seperti gambar dibawah ini






lalu angka yang dicari yaitu angka 5 dia termasuk kedalam high maka low dicoret seperti gambar dibawah



maka low berada diangka 3 mid diangka 4 dan high diangka 5, karena low sebelumnya tadi sudah dicoret seperti gambar dibawah





maka pencarian pun selesai karena data 5 telah ditemukan



dibawah ini adalah penggabungan antara selection sort dan bubleserch copy paste boleh tapi juga dipelajari ya

#include <conio.h>
#include <iostream>
#include <iomanip>
using namespace std;
void selection_sort( int data[])
{
      int temp;

      for(int i=0; i<10;i++){        
            for(int j = i+1; j<10; j++)
                  {
                  if(data[i]>data[j])
                  {
                    temp = data[i];
                    data[i]  = data[j];
                    data[j] = temp;
                  }
            }
      }
}
int main()
{
      int data[10];
      int cari;
      cout<<"\t   'BINARY SEARCH'"<<endl;
      cout<<"\t====================="<<endl;
   
      cout<<"\nMasukkan 10 Data : ";  
      for(int x = 0; x<10; x++)
            cin>>data[x];
      cout<<"\nMasukkan data yang ingin Anda cari : ";
      cin>>cari;
      cout<<"\nData diurutkan : ";
      selection_sort(data);

      for(int x = 0; x<10;x++)
            cout<<setw(3)<<data[x];
      cout<<endl;
      int awal, akhir, tengah, b_flag = 0;  
      awal = 0;
      akhir = 10;
   
      while (b_flag == 0 && awal<=akhir)
      {
            tengah = (awal + akhir)/2;        
            if(data[tengah] == cari)
            {
                  b_flag = 1;
                  break;
            }
            else if(data[tengah]<cari)
                  awal = tengah + 1;
            else
                  akhir = tengah -1;
      }
      if(b_flag == 1)
            cout<<"\nData ditemukan pada index ke-"<<tengah<<endl;
             
      else
            cout<<"\nData tidak ditemukan\n";
       

      _getche();
      return 0;
  }



gimana penjelasan diatas mudah mudahan kalian paham dan menambah ilmu serta wawasan kalian sekian postingan dari saya terimakasih.

No comments:

Post a Comment

NAMESPACE C++,COMPILE dan LINKING

Hari ini saya akan memposting namespace,compile danlingking pada c++. NAMESPACE  Namespace adalah sebuah pengelompokan progam agar proga...