Advertisement
Arnab_Manna

QuicksortCU

Dec 9th, 2022
854
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.21 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. void swap(int *p,int *q)
  5. {
  6.     int temp=*p;
  7.     *p=*q;
  8.     *q=temp;
  9. }
  10.  
  11. int partition(int *a,int low,int high)
  12. {
  13.     int pivot,start,end;
  14.     pivot=a[low];
  15.     start=low;
  16.     end=high;
  17.     while(start<end)
  18.     {
  19.         while(a[start]<=pivot)
  20.         {
  21.            start++;
  22.        }                
  23.         while(a[end]>pivot)
  24.         {
  25.             end--;
  26.         }  
  27.                
  28.         if(start<end)
  29.         {
  30.             swap(&a[start],&a[end]);
  31.         }
  32.         swap(&a[low],&a[end]);
  33.         return end;
  34.     }
  35.        
  36. }
  37.  
  38.  void quick_sort(int *a,int lb,int ub)
  39.  {
  40.     int loc;
  41.     if(lb<ub)
  42.     {
  43.         loc=partition(a,lb,ub);
  44.         quick_sort(a,lb,loc-1);
  45.         quick_sort(a,loc+1,ub);  
  46.     }
  47. }
  48.  
  49. void printarray(int *a,int n)
  50. {
  51.     int i;
  52.     for (i=0;i<n;i++)
  53.          printf("%d, ",a[i]);
  54. }
  55.  
  56. int main()
  57. {
  58.     int *a;
  59.     int n,i;
  60.     puts("enter the range");
  61.     scanf("%d",&n);
  62.     a=(int*) calloc(n,sizeof(int));
  63.    
  64.     for(i=0;i<n;i++)
  65.     {
  66.         printf("enter the data (%d):",i);
  67.         scanf("%d",&a[i]);
  68.     }
  69.     printf("original array\n");
  70.     printarray(a,n);
  71.     puts("\narray after sorting");
  72.     quick_sort(a,0,n-1);
  73.     printarray(a,n);
  74.     return 0;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement