Posts

Showing posts from March, 2024

binary search

#include<stdio.h> int binarysearch(int arr[],int target,int mid,int size,int *pass) {  int l=0;  int h=size-1;  while(l<=h)  {   int mid=(l+h)/2;      if(arr[mid]==target)   {    return 1;   }   else if(arr[mid]<target)   {    l=mid+1;    *pass=(*pass)+1;   }   else   {    h=mid-1;    *pass=(*pass)+1;   }  }  return -1; } int main() { int mid;  int pass=1;  int arr[]={10,20,30,40,50,60,70};  int size=sizeof(arr)/sizeof(arr[0]);  int target;  printf("enter the number to find\n");  scanf("%d",&target);  int ans=binarysearch(arr,target,mid,size,&pass);  if(ans==-1)  {   printf("data not found");     }  else   {   printf("\n data found at %d pass",pass);  } }

Min max

#include <stdio.h> void minmax(int a[], int i, int j, int *min, int *max, int *c) {     if (i == j)   {         *min = *max = a[i];     }   else if (i == j - 1   {         if (a[i] < a[j])    {             *min = a[i];             *max = a[j];         } else    {             *min = a[j];             *max = a[i];         }         (*c)++;     }   else   {         int mid = (i + j) / 2;         int min1, max1;         minmax(a, i, mid, min, max, c);         min1 = *min;         max1 = *max;         minmax(a, mid + 1, j, min, max, c);       ...

mergesort

#include <stdio.h> void merge(int a[], int low, int high, int mid, int *c) {     int i, j, k, b[10];     i = low;     j = mid + 1;     k = low;     while (i <= mid && j <= high)     {         (*c)++;         if (a[i] < a[j])         {             b[k] = a[i];             i++;         }         else         {             b[k] = a[j];             j++;         }         k++;     }     while (i <= mid)     {         b[k] = a[i];         i++;         k++;     }     while (j <= high)     {       ...