_rashed

binary search

Aug 3rd, 2025
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.80 KB | None | 0 0
  1. #include <iostream>
  2. #define list_size 10
  3.  
  4. using namespace std;
  5.  
  6. struct list {
  7.     int length = 0;
  8.     int items[list_size];
  9. };
  10.  
  11. void insert(struct list *ls, int value) {
  12.     int i;
  13.     for(i = ls->length-1; i >= 0 && ls->items[i] > value; i--) {
  14.         ls->items[i+1] = ls->items[i];
  15.     }
  16.     ls->items[i+1] = value;
  17.     ls->length++;
  18. }
  19.  
  20. void print_all(struct list *ls) {
  21.     cout << "Printing all elements: ";
  22.     for(int i = 0; i < ls->length; i++) {
  23.         cout << ls->items[i] << " ";
  24.     }
  25.     cout << "\n";
  26. }
  27.  
  28. int get(struct list *ls, int index) {
  29.     return ls->items[index];
  30. }
  31.  
  32. int search(struct list *ls, int value) {
  33.     int low = 0;
  34.     int high = ls->length-1;
  35.     while(low <= high) {
  36.         int mid = (low+high)/2;
  37.         cout << "low = " << low << " high = " << high << " mid = " << mid << "\n";
  38.         if(ls->items[mid] == value) {
  39.             // Found the item
  40.             cout << "Found element at " << mid << "\n";
  41.             return mid;
  42.         }
  43.         else if(ls->items[mid] < value) {
  44.             low = mid+1;
  45.             cout << "low changed to " << low << "\n";
  46.         }
  47.         else {
  48.             high = mid-1;
  49.             cout << "high changed to " << high << "\n";
  50.         }
  51.     }
  52.     return -1;
  53. }
  54.  
  55. void delete_item(struct list *ls, int index) {
  56.     for(int i = index+1; i < ls->length; i++) {
  57.         ls->items[i-1] = ls->items[i];
  58.     }
  59.     ls->length--;
  60. }
  61.  
  62.  
  63.  
  64. int main()
  65. {
  66.     list myList;
  67.  
  68.     insert(&myList, 2);
  69.     insert(&myList, 5);
  70.     insert(&myList, 8);
  71.     insert(&myList, 12);
  72.     insert(&myList, 16);
  73.     insert(&myList, 23);
  74.     insert(&myList, 38);
  75.     insert(&myList, 56);
  76.     insert(&myList, 72);
  77.     insert(&myList, 91);
  78.  
  79.     print_all(&myList);
  80.  
  81.     int index = search(&myList, 23);
  82.     return 0;
  83. }
  84.  
Advertisement
Add Comment
Please, Sign In to add comment