912. 排序数组

  1. class Solution {
  2. public int[] sortArray(int[] nums) {
  3. quickSort(nums, 0, nums.length - 1);
  4. return nums;
  5. }
  6. public void quickSort(int[] nums, int left, int right) {
  7. if (left < right) {
  8. int baseLine = partition(nums, left, right);
  9. quickSort(nums, left, baseLine - 1);
  10. quickSort(nums, baseLine + 1, right);
  11. }
  12. }
  13. private int partition(int[] nums, int left, int right) {
  14. int tmp = nums[left];
  15. if (left > right)
  16. return -1;
  17. while (left < right) {
  18. while (left < right && nums[right] >= tmp)
  19. right--;
  20. nums[left] = nums[right];
  21. while (left < right && nums[left] < tmp)
  22. left++;
  23. nums[right] = nums[left];
  24. }
  25. nums[left] = tmp;
  26. return left;
  27. }
  28. }