Advertisement
Guest User

Quick Sort

a guest
Dec 7th, 2016
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<time.h>
  4.  
  5. void swap(int *a,int *b)
  6. {
  7. int temp=*a;
  8. *a=*b;
  9. *b=temp;
  10. }
  11.  
  12. int partition(int arr[],int start,int end)
  13. {
  14. int pivot=arr[end];
  15. int i=start-1,j;
  16. for (j=start;j<end;j++)
  17. {
  18. if (arr[j]<=pivot)
  19. {
  20. i++;
  21. swap(&arr[i], &arr[j]);
  22. }
  23. }
  24. swap(&arr[i + 1], &arr[end]);
  25. return (i + 1);
  26. }
  27.  
  28. void QuickUtil(int arr[],int start,int end)
  29. {
  30. if(start<end)
  31. {
  32. int pivot=partition(arr,start,end);
  33.  
  34. QuickUtil(arr,start,pivot-1);
  35. QuickUtil(arr,pivot+1,end);
  36. }
  37. }
  38.  
  39. //Quick Sort
  40. void my_sort3(int arr[],int n)
  41. {
  42. QuickUtil(arr,0,n-1);
  43. }
  44.  
  45. int main() {
  46.  
  47. int n, i;
  48. scanf("%d", &n);
  49. int *a = malloc(sizeof(int) * n);
  50. srand(time(NULL));
  51. for(i = 0; i < n; ++i) {
  52. a[i] = rand() % 10000;
  53. }
  54.  
  55. my_sort3(a,n);
  56.  
  57. int sorted = 1;
  58. for(i = 0; i < n - 1; ++i) {
  59. if(a[i] > a[i + 1]) {
  60. sorted = 0;
  61. break;
  62. }
  63. }
  64. if(!sorted) {
  65. printf("NOT SORTED");
  66. } else {
  67. printf("SORTED");
  68. }
  69. free(a);
  70. return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement