排序-快排
快排是一个递归的排序过程,每次递归,将当前序列的第一个元素当作中间值pivot(也可以选最右边或者随机),把比pivot小的放左边,比pivot大的放右边,再依次对左边的序列和右边的序列分别排序。
vector<int> MySort(vector<int>& arr) {
// write code here
int n = arr.size();
if(n < 2){
return arr;
}
QuickSort(arr,0,n-1);
return arr;
}
void QuickSort(vector<int>& arr, int l, int r){
if(l >= r){
return;
}
int pivot = arr[l];
int lc = l,rc = r;
while(lc < rc){
while(lc < rc && arr[rc] > pivot){
rc--;
}
if(lc < rc){
arr[lc] = arr[rc];
lc++;
}
while(lc < rc && arr[lc] <= pivot){
lc++;
}
if(lc < rc){
arr[rc] = arr[lc];
rc--;
}
}
arr[lc] = pivot;
QuickSort(arr,l,lc-1);
QuickSort(arr,lc+1,r);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能