Advertisement
rickyreticent

Search Algorithm c++

Apr 24th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.47 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define MAX 10
  4.  
  5. int Data[MAX];
  6. // Fungsi pencarian sequantial
  7. int SequentialSearch(int x) {
  8.     int i = 0;
  9.     bool ketemu = false;
  10.     while ((!ketemu) && (i < MAX)){
  11.         if(Data[i] == x)
  12.             ketemu = true;
  13.         else
  14.             i++;
  15.     }
  16.     if(ketemu)
  17.         return i;
  18.     else
  19.         return -1;
  20. }
  21.  
  22. // Fungsi pencarian biner
  23. int BinarySearch(int x) {
  24.     int L = 0, R = MAX-1, m;
  25.     bool ketemu = false;
  26.     while((L <= R) && (!ketemu)){
  27.         m = (L + R) / 2;
  28.         if(Data[m] == x)
  29.             ketemu = true;
  30.         else if (x < Data[m])
  31.             R = m - 1;
  32.         else
  33.             L = m + 1;
  34.     }
  35.     if(ketemu)
  36.         return m;
  37.     else
  38.         return -1;
  39. }
  40.  
  41. int main() {
  42. int i;
  43.     //pembangkit bilangan random
  44.     srand(0);
  45.     //membangkitkan bilangan integer random
  46.     printf("\nDATA : ");
  47.     for (i = 0; i < MAX; i++) {
  48.         Data[i] = i+(i*i);
  49.         printf("%d  ", Data[i]);
  50.     }
  51.     int Kunci,pilihan,ketemu;
  52.     printf("\n\n1. Binary \n2. Sequential");
  53.     printf("\nMasukkan Jenis Pencarian: ");
  54.     scanf("%d",&pilihan);
  55.     printf("\nKunci : ");
  56.     scanf("%d", &Kunci);
  57.     if (pilihan == 1){
  58.         printf("Binary Searching\n");
  59.         ketemu = BinarySearch(Kunci);
  60.     }
  61.     else if (pilihan == 2){
  62.         printf("Sequential Searching\n");
  63.         ketemu = SequentialSearch(Kunci);
  64.     }
  65.     if(ketemu>0)
  66.         printf("Data ditemukan pada posisi %d", ketemu+1);
  67.     else
  68.         printf("Data tidak ditemukan");
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement