太原做网站价格,2022年7到8月份的十大新闻,世界最新军事新闻最新消息,提供网站建设工具目录 一、题目描述二、算法原理2.1快速排序2.2归并排序 三、代码实现3.1快排代码实现3.2归并代码实现 一、题目描述 二、算法原理
2.1快速排序 2.2归并排序 三、代码实现
3.1快排代码实现
class Solution {
public:int getRandom(int left,int right,vectorint… 目录 一、题目描述二、算法原理2.1快速排序2.2归并排序 三、代码实现3.1快排代码实现3.2归并代码实现 一、题目描述 二、算法原理
2.1快速排序 2.2归并排序 三、代码实现
3.1快排代码实现
class Solution {
public:int getRandom(int left,int right,vectorint nums){return nums[rand()%(right-left1)left];}void _sortArray(int left,int right,vectorint nums){if(leftright){return ;}int keygetRandom(left,right,nums);int lleft-1,rright1,ileft;while(ir){if(nums[i]key)swap(nums[l],nums[i]);else if(nums[i]key)swap(nums[i],nums[--r]);elsei;}_sortArray(left,l,nums);_sortArray(r,right,nums);}vectorint sortArray(vectorint nums) {srand(time(NULL));_sortArray(0,nums.size()-1,nums);return nums;}
};3.2归并代码实现
class Solution {
public:void mergeSort(vectorint nums,int left,int right){if(leftright){return;}int midleft(right-left)/2;mergeSort(nums,left,mid);mergeSort(nums,mid1,right);//合并两个有序数组vectorint v(right-left1);int cur1left,cur2mid1,i0;while((cur1mid)(cur2right)){if(nums[cur1]nums[cur2]){v[i]nums[cur1];}else{v[i]nums[cur2];}}while(cur1mid) v[i]nums[cur1];while(cur2right) v[i]nums[cur2];//还原数组for(int ileft;iright;i){nums[i]v[i-left];}}vectorint sortArray(vectorint nums) {mergeSort(nums,0,nums.size()-1);return nums;}
};