fork(1) download
  1. #include<iostream>
  2.  
  3. #include<time.h>
  4. using namespace std;
  5.  
  6. void partition (int *a, int s, int e, int &start, int &end)
  7. {
  8. start=s-1;
  9. int mid=s;
  10. end=e;
  11.  
  12. int pivot=a[e],temp,i;
  13.  
  14. while (mid < end)
  15. {
  16. if (a[mid] < pivot)
  17. {
  18. temp = a[start+1];
  19. a[start+1] = a[mid];
  20. a[mid] = temp;
  21. start++;
  22. mid++;
  23. }
  24. else if (a[mid] == pivot)
  25. {
  26. mid++;
  27. }
  28. else
  29. {
  30. temp = a[end-1];
  31. a[end-1] = a[mid];
  32. a[mid] = temp;
  33. end--;
  34. }
  35. }
  36. temp = a[mid];
  37. a[mid] = a[e];
  38. a[e] = temp;
  39. cout<<start<<" "<<end<<"\n";
  40. }
  41.  
  42. void Qsort(int *a, int s, int e)
  43. {
  44. if (s>=e)
  45. return;
  46. int start,end;
  47. partition(a,s,e,start,end);
  48. Qsort(a,s,start);
  49. Qsort(a,end+1,e);
  50. }
  51.  
  52. int main()
  53. {
  54. int a[100];
  55. int i,j;
  56. int n = sizeof(a)/sizeof(a[0]);
  57. srand(time(NULL));
  58. for (j=0;j<n;j++)
  59. {
  60. a[j] = rand()%40;
  61. cout<<a[j]<<" ";
  62. }
  63. clock_t start = clock();
  64. Qsort(a,0,n-1);
  65.  
  66. for (i=0;i<n;i++)
  67. {
  68. cout<<a[i]<<" ";
  69. }
  70. cout<<"\nTime elapsed: "<<((double)clock() - start) / CLOCKS_PER_SEC<<endl;
  71.  
  72. }
  73.  
Success #stdin #stdout 0s 2852KB
stdin
Standard input is empty
stdout
9 22 29 4 36 3 33 33 21 0 18 3 23 24 37 34 14 10 5 16 33 23 37 22 20 5 8 18 8 4 39 17 26 21 13 14 24 7 0 5 7 10 0 30 26 37 24 1 0 22 9 33 5 6 7 18 11 7 36 11 12 28 29 30 1 34 5 25 1 37 23 8 39 23 31 25 21 7 26 21 29 35 6 27 1 14 5 5 21 33 16 33 13 37 24 14 32 21 0 25 66 69
4 8
-1 4
49 55
45 48
19 21
12 19
10 12
8 10
21 26
38 42
26 29
29 31
31 33
33 35
36 38
42 44
55 58
58 62
62 66
92 97
81 87
69 72
79 80
77 79
74 77
72 73
90 92
87 89
97 99
0  0  0  0  0  1  1  1  1  3  3  4  4  5  5  5  5  5  5  5  6  6  7  7  7  7  7  8  8  8  9  9  10  10  11  11  12  13  13  14  14  14  14  16  16  17  18  18  18  20  21  21  21  21  21  21  22  22  22  23  23  23  23  24  24  24  24  25  25  25  26  26  26  27  28  29  29  29  30  30  31  32  33  33  33  33  33  33  34  34  35  36  36  37  37  37  37  37  39  39  
Time elapsed: 0