1. public static void sort(int array[], int left, int right) {
    2. int base = array[left];
    3. int ll = left;
    4. int rr = right;
    5. while (ll < rr) {
    6. while (ll < rr && array[rr] >= base) {
    7. rr--;
    8. }
    9. if (ll < rr) {
    10. int temp = array[rr];
    11. array[rr] = array[ll];
    12. array[ll] = temp;
    13. ll++;
    14. }
    15. while (ll < rr && array[ll] <= base) {
    16. ll++;
    17. }
    18. if (ll < rr) {
    19. int temp = array[rr];
    20. array[rr] = array[ll];
    21. array[ll] = temp;
    22. rr--;
    23. }
    24. }
    25. if (left < ll-1) {
    26. sort(array, left, ll - 1);
    27. }
    28. if (ll+1 < right) {
    29. sort(array, ll + 1, right);
    30. }
    31. }