Bewin

searching

Dec 5th, 2023
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.59 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. void printArray(int pArr[], int n) //function to print Array
  4. {
  5.     printf("\n");
  6.     printf("{");
  7.     for (int i = 0; i < n; ++i) {
  8.         printf("%d",pArr[i]);
  9.         if(i<n-1)
  10.             printf(", ");
  11.     }
  12.     printf("}");
  13.     printf("\n\n");
  14. }
  15. void linearSearch(int arr[],int n) //function for linear searching
  16. {
  17.     int key,flag=0,pos;
  18.     printf("\nEnter key to be searched: ");
  19.     scanf("%d",&key);
  20.  
  21.     for (int i = 0; i < n; ++i) {
  22.         if(arr[i]==key){
  23.             flag=1;
  24.             pos=i+1;
  25.             break;
  26.         }
  27.     }
  28.     if(flag==1)
  29.         printf("Linear Search successful, Element found at position %d\n",pos);
  30.     else
  31.         printf("Element not found!\n");
  32. }
  33. void bubbleSort(int arr[],int n,int sorted_arr[]) // function for bubble sorting
  34. {
  35.     int temp;
  36.     for (int i = 0; i < n; ++i) {
  37.         sorted_arr[i]=arr[i];
  38.     }
  39.     for (int i = 0; i < n-1; ++i) {
  40.         for (int j = 0; j < n-i-1; ++j) {
  41.             if(sorted_arr[j]>sorted_arr[j+1]){
  42.                 temp=sorted_arr[j];
  43.                 sorted_arr[j]=sorted_arr[j+1];
  44.                 sorted_arr[j+1]=temp;
  45.             }
  46.         }
  47.     }
  48.     printf("\nSorted Array");
  49.     printArray(sorted_arr,n);
  50. }
  51. void binarySearch(int arr[],int n) // function for binary searching
  52. {
  53.     int sorted_arr[n];
  54.     bubbleSort(arr,n,sorted_arr);
  55.     int key,mid,l=0,u=n-1,flag=0;
  56.     printf("\nEnter key to be searched: ");
  57.     scanf("%d",&key);
  58.     while (flag==0 && l<=u){
  59.         mid=(l+u)/2;
  60.         if(arr[mid]==key)
  61.             flag=1;
  62.         if(key<arr[mid])
  63.             u=mid-1;
  64.         else
  65.             l=mid+1;
  66.     }
  67.     if(flag==1)
  68.         printf("Binary Search successful, Element found at position %d\n",++mid);
  69.     else
  70.         printf("Element not found!\n");
  71. }
  72. int main()
  73. {
  74.     int n;
  75.     printf("Enter number of elements in array:\n");
  76.     scanf("%d",&n);
  77.     int arr[n];
  78.     printf("Enter %d numbers:\n",n);
  79.     for (int i = 0; i < n; ++i) {
  80.         scanf("%d",&arr[i]);
  81.     }
  82.     printArray(arr,n);
  83.     while (1) {
  84.         int choice=0;
  85.         printf("\n1. Linear Search\n2. Binary Search\n3. Exit");
  86.         printf("\nEnter your choice: ");
  87.         scanf("%d",&choice);
  88.         switch (choice) {
  89.             case 1:
  90.                 linearSearch(arr,n);
  91.                 break;
  92.             case 2:
  93.                 binarySearch(arr,n);
  94.                 break;
  95.             case 3:
  96.                 exit(0);
  97.             default:
  98.                 printf("Enter a valid argument!\n");
  99.                 break;
  100.         }
  101.     }
  102. }
Add Comment
Please, Sign In to add comment