1. Question:Source code of simple quick sort implementation using array ascending order in c programming language 

    Answer
    #include<stdio.h>
    
    void quicksort(int [10],int,int);
    
    int main(){
      int x[20],size,i;
    
      printf("Enter size of the array: ");
      scanf("%d",&size);
    
      printf("Enter %d elements: ",size);
      for(i=0;i<size;i++)
        scanf("%d",&x[i]);
    
      quicksort(x,0,size-1);
    
      printf("Sorted elements: ");
      for(i=0;i<size;i++)
        printf(" %d",x[i]);
    
      return 0;
    }
    
    void quicksort(int x[10],int first,int last){
        int pivot,j,temp,i;
    
         if(first<last){
             pivot=first;
             i=first;
             j=last;
    
             while(i<j){
                 while(x[i]<=x[pivot]&&i<last)
                     i++;
                 while(x[j]>x[pivot])
                     j--;
                 if(i<j){
                     temp=x[i];
                      x[i]=x[j];
                      x[j]=temp;
                 }
             }
    
             temp=x[pivot];
             x[pivot]=x[j];
             x[j]=temp;
             quicksort(x,first,j-1);
             quicksort(x,j+1,last);
    
        }
    }
    Sample Output: Enter size of the array: 5 Enter 5 elements: 3 8 0 1 2 Sorted elements: 0 1 2 3 8






    1. Report
  2. Question:Source code of simple merge sort implementation using array in ascending order in c programming language 

    Answer
    #include<stdio.h>
    #define MAX 50
    
    void mergeSort(int arr[],int low,int mid,int high);
    void partition(int arr[],int low,int high);
    
    int main(){
       
        int merge[MAX],i,n;
    
        printf("Enter the total number of elements: ");
        scanf("%d",&n);
    
        printf("Enter the elements which to be sort: ");
        for(i=0;i<n;i++){
             scanf("%d",&merge[i]);
        }
    
        partition(merge,0,n-1);
    
        printf("After merge sorting elements are: ");
        for(i=0;i<n;i++){
             printf("%d ",merge[i]);
        }
    
       return 0;
    }
    
    void partition(int arr[],int low,int high){
    
        int mid;
    
        if(low<high){
             mid=(low+high)/2;
             partition(arr,low,mid);
             partition(arr,mid+1,high);
             mergeSort(arr,low,mid,high);
        }
    }
    
    void mergeSort(int arr[],int low,int mid,int high){
    
        int i,m,k,l,temp[MAX];
    
        l=low;
        i=low;
        m=mid+1;
    
        while((l<=mid)&&(m<=high)){
    
             if(arr[l]<=arr[m]){
                 temp[i]=arr[l];
                 l++;
             }
             else{
                 temp[i]=arr[m];
                 m++;
             }
             i++;
        }
    
        if(l>mid){
             for(k=m;k<=high;k++){
                 temp[i]=arr[k];
                 i++;
             }
        }
        else{
             for(k=l;k<=mid;k++){
                 temp[i]=arr[k];
                 i++;
             }
        }
       
        for(k=low;k<=high;k++){
             arr[k]=temp[k];
        }
    }
    Sample output: Enter the total number of elements: 5 Enter the elements which to be sort: 2 5 0 9 1 After merge sorting elements are: 0 1 2 5 9






    1. Report
  3. Question:C program to calculate factorial using recursion 

    Answer
    #include<stdio.h>
    int fact(int);
    int main(){
      int num,f;
      printf("\nEnter a number: ");
      scanf("%d",&num);
      f=fact(num);
      printf("\nFactorial of %d is: %d",num,f);
      return 0;
    }
    
    int fact(int n){
       if(n==1)
           return 1;
       else
           return(n*fact(n-1));
     }






    1. Report
  4. Question:Find gcd of a number using recursion in c program 

    Answer
    #include<stdio.h>
    int main(){
      int n1,n2,gcd;
      printf("\nEnter two numbers: ");
      scanf("%d %d",&n1,&n2);
      gcd=findgcd(n1,n2);
      printf("\nGCD of %d and %d is: %d",n1,n2,gcd);
      return 0;
    }
    
    int findgcd(int x,int y){
         while(x!=y){
              if(x>y)
                  return findgcd(x-y,y);
              else
                 return findgcd(x,y-x);
         }
         return x;
    }






    1. Report
  5. Question:Sum of digits in c using recursion 

    Answer
    #include<stdio.h>
    int main(){
      int num,x;
      clrscr();
      printf("\nEnter a number: ");
      scanf("%d",&num);
      x=findsum(num);
      printf("Sum of the digits of %d is: %d",num,x);
      return 0;
    }
    
    int r,s;
    int findsum(int n){
    if(n){
             r=n%10;
             s=s+r;
             findsum(n/10);
         }
         else
           return s;
    }






    1. Report
Copyright © 2025. Powered by Intellect Software Ltd