Advertisement
Md_Touhid

Quick Sort

May 18th, 2016 (edited)
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.18 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<limits.h>
  3.  
  4. void quick_sort(int, int);
  5.  
  6. int arr[100];
  7.  
  8. int main(void)
  9. {
  10.     arr[0] = INT_MIN;
  11.     int n, i;
  12.     printf("How many numbers : ");
  13.     scanf("%d", &n);
  14.     for(i=1; i<=n; i++)
  15.     {
  16.         arr[i] = rand()%1000;
  17.     }
  18.  
  19.     printf("\n\nUnsorted Data :\n");
  20.     for(i=1; i<=n; i++)
  21.     {
  22.         printf("%d ", arr[i]);
  23.     }
  24.  
  25.     quick_sort(1, n);
  26.  
  27.     printf("\n\nSorted Data :\n");
  28.     for(i=1; i<=n; i++)
  29.     {
  30.         printf("%d ", arr[i]);
  31.     }
  32.     return 0;
  33. }
  34.  
  35. void quick_sort(int f, int l)
  36. {
  37.     int pivot, i, j, temp;
  38.  
  39.     if(f<l)
  40.     {
  41.         pivot = f;
  42.         i =  f;
  43.         j = l;
  44.  
  45.         while (i<j)
  46.         {
  47.             while (arr[i]<=arr[pivot])
  48.             {
  49.                 i++;
  50.             }
  51.             while (arr[j]>arr[pivot])
  52.             {
  53.                 j--;
  54.             }
  55.             if (i<j)
  56.             {
  57.                 temp = arr[i];
  58.                 arr[i] = arr[j];
  59.                 arr[j] = temp;
  60.             }
  61.         }
  62.  
  63.         temp = arr[pivot];
  64.         arr[pivot] = arr[j];
  65.         arr[j] = temp;
  66.  
  67.         quick_sort(f, j-1);
  68.         quick_sort(j+1, l);
  69.     }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement