快速排序:
class Solution {
public:
void quickSort(vector<int>& nums,int begin,int end) {
if(begin>=end) {
return ;
}
int poivt=nums[begin];
int index=begin+1;
int index2=end;
int temp;
while(index<=index2) {
if(nums[index2]<poivt) {
temp=nums[index];
nums[index]=nums[index2];
nums[index2]=temp;
index++;
} else {
index2--;
}
}
int swap_index=index-1;
temp=nums[swap_index];
nums[swap_index]=nums[begin];
nums[begin]=temp;
quickSort(nums,begin,swap_index-1);
quickSort(nums,swap_index+1,end);
}
vector<int> sortArray(vector<int>& nums) {
quickSort(nums,0,nums.size()-1);
return nums;
}
};
归并排序:
void recursive(vector<int>& vec,int start,int end) {
if(start>=end) {
return ;
}
int mid=(start+end)/2;
recursive(vec,start,mid);
recursive(vec,mid+1,end);
vector<int> copy;
int index1=start;
int index2=mid+1;
while(index1<=mid&&index2<=end) {
if(vec[index1]<vec[index2]) {
copy.push_back(vec[index1++]);
} else {
copy.push_back(vec[index2++]);
}
}
while(index1<=mid) {
copy.push_back(vec[index1++]);
}
while(index2<=end) {
copy.push_back(vec[index2++]);
}
for (int i = start; i <= end; i++)
{
vec[i]=copy[i-start];
}
}
void mergeSort(vector<int>& vec) {
recursive(vec,0,vec.size()-1);
}