- 快排
class Solution { public: vectorsortArray(vector & nums) { quick_sort(nums, 0, nums.size() - 1); return nums; } void quick_sort(vector & nums, int l, int r) { if (l >= r) return; int left = l, right = r; swap(nums[l], nums[(l + r) / 2]); int pivot = nums[l]; while (l < r) { //循环体内只扔了一对次,得一直扔到l==r // 这里的l = pivot && l < r) r--;//必须得r先扔给l,因为pivot=nums[l],l现在的位置是坑 nums[l] = nums[r]; while (nums[l] <= pivot && l < r) l++; nums[r] = nums[l]; } //出循环肯定是因为l==r所以,这个l/r的坑就是给pivot留的 nums[l] = pivot; quick_sort(nums, left, l - 1); quick_sort(nums, l + 1, right); } };
- 堆排
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)