Advertisement
Guest User

Projet SDA - tri rapide

a guest
Dec 12th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.54 KB | None | 0 0
  1. static void echange (int T[], unsigned i, unsigned j) {
  2. int tmp;
  3.  
  4. tmp = T[i];
  5. T[i] = T[j];
  6. T[j] = tmp;
  7. }
  8. unsigned int segmentation (int T[], unsigned g, unsigned d) {
  9. unsigned i, j;
  10. int piv = T[d];
  11.  
  12. i = g - 1;
  13.  
  14. for (j = g; j < d; j++)
  15. if (T[j] <= piv)
  16. echange(T, ++i, j);
  17.  
  18. echange(T, i+1, d);
  19.  
  20. return i+1;
  21. }
  22. void tri_rapide (int T[], unsigned g, unsigned d) {
  23. unsigned piv;
  24.  
  25. if ((g >= d) || (d == -1U))
  26. return;
  27.  
  28. piv = segmentation(T, g, d);
  29.  
  30. tri_rapide(T, g, piv-1);
  31. tri_rapide(T, piv+1, d);
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement