fork(1) download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. int n=12, A[12] = { 3, 1, 1, 5, 9, 5, 2, 4, 7, 6, 5, 0 };
  6.  
  7. void quickSort(int *a, int l, int r)
  8. {
  9. srand(time(NULL)); //khoi tao tham so ham rand()
  10. int key = a[l + rand() % (r-l+1)]; //lay khoa la gia tri ngau nhien tu a[l] -> a[r]
  11. //int key = a[(l+r)/2];
  12. int i = l, j = r;
  13.  
  14. while(i <= j)
  15. {
  16. while(a[i] <= key) i++; // tim phan tu ben trai ma >=key
  17. while(a[j] >= key) j--; // tim phan tu ben trai ma <=key
  18. if(i <= j)
  19. {
  20. if (i < j) { // swap fail
  21. int t = a[i];
  22. a[i] = a[j];
  23. a[j] = t;
  24. }
  25. i++;
  26. j--;
  27. }
  28. }
  29. //bay gio ta co 1 mang : a[l]....a[j]..a[i]...a[r]
  30. if (l < j) quickSort(a, l, j); // lam lai voi mang a[l]....a[j]
  31. if (i < r) quickSort(a, i, r); // lam lai voi mang a[i]....a[r]
  32. }
  33.  
  34. int main(void) {
  35. quickSort(A, 0, n-1);
  36. for (int i=0; i<n; i++) printf("%d ", A[i]);
  37. printf("\n");
  38. }
Time limit exceeded #stdin #stdout 5s 84252KB
stdin
Standard input is empty
stdout
Standard output is empty