Skip to main content

Posts

Showing posts from July, 2024

Divide and conquer min max

          Divide and conquer min max  #include<stdio.h> #include<stdio.h> int max, min; int a[100]; void maxmin(int i, int j) {  int max1, min1, mid;  if(i==j)  {   max = min = a[i];  }  else  {   if(i == j-1)   {    if(a[i] >a[j])    {     max = a[i];     min = a[j];    }    else    {     max = a[j];     min = a[i];    }   }   else   {    mid = (i+j)/2;    maxmin(i, mid);    max1 = max; min1 = min;    maxmin(mid+1, j);    if(max <max1)     max = max1;    if(min > min1)     min = min1;   }  } } int main () {  int i, num;  printf ("\nEnter the total number of numbers : ");  scanf ("%d",&num);  printf ("Enter the numbers : \n");  for (i=1;i<=num;i++)   scanf ("%d",&a[i]);  max = a[0];  min = a[0];  maxmin(1, num);  printf ("Minimum element in an array : %d\n", min);  printf ("Maximum element in an array : %d\n", max);  return 0; }

How to Write Merge Sort in C

                    How to Write Merge Sort in C #include<stdio.h> /// Merge Sort void merge(int arr[],int l,int m,int r); void merge_sort(int arr[],int l,int r); void print_arr(int arr[],int size); void merge_sort(int arr[],int l,int r){     if(l<r){         int m=(l+r)/2;         merge_sort(arr,l,m);         merge_sort(arr,m+1,r);         merge(arr,l,m,r);     } } void merge(int arr[],int l,int m,int r){     int i,j,k;     int n1=m-l+1;     int n2=r-m;     int L[n1];     int R[n2];     for(int i=0;i<n1;i++){         L[i]=arr[l+i];     }     for(int j=0;j<n2;j++){         R[j]=arr[m+1+j];     }     i=0;     j=0;     k=l;     while(i<n1 && j<n2){         if(L[i]<=R[j]){             arr[k]=L[i];             i++;         }         else{             arr[k]=R[j];             j++;         }         k++;     }     while(i<n1){         arr[k]=L[i];         i++;         k++;     }     while(j<n2){         arr[k]=R[j];         j++;         k++;     } } void