912 - Sort an Array
JAVA
class Solution { private int[] nums; public int[] sortArray(int[] nums) { this.nums = nums; quikcSort(0, nums.length - 1); return nums; } private void quikcSort(int l, int r) { if (l >= r) { return; } int x = nums[(l + r) >> 1]; int i = l - 1, j = r + 1; while (i < j) { while (nums[++i] < x) { } while (nums[--j] > x) { } if (i < j) { int t = nums[i]; nums[i] = nums[j]; nums[j] = t; } } quikcSort(l, j); quikcSort(j + 1, r); } }
C++
class Solution { public: vector<int> sortArray(vector<int>& nums) { function<void(int, int)> quick_sort = [&](int l, int r) { if (l >= r) { return; } int i = l - 1, j = r + 1; int x = nums[(l + r) >> 1]; while (i < j) { while (nums[++i] < x) { } while (nums[--j] > x) { } if (i < j) { swap(nums[i], nums[j]); } } quick_sort(l, j); quick_sort(j + 1, r); }; quick_sort(0, nums.size() - 1); return nums; } };
Comments
Post a Comment