快排代码

复制代码
 1 #include <iostream>
 2 #include <algorithm>
 3 using namespace std;
 4 
 5 class Solution{
 6 public:
 7     void quick_sort(vector<int>& arr, int l, int r)
 8     {
 9         if(l>r) return;
10 
11         int i=l, j=r+1;
12 
13         while(i!=j)
14         {
15             while(arr[++i]<arr[l] && i<r);
16             while(arr[--j]>arr[l] && j>l);
17             if(i >= j) break;
18             swap(arr[i], arr[j]);
19         }
20         swap(arr[l],arr[j]);
21 
22         quick_sort(arr, l, j-1);
23         quick_sort(arr, j+1, r);
24     }
25 
26     void print_vector(vector<int>& arr)
27     {
28         for(auto i:arr) cout << i <<" ";
29         cout << endl;
30     }
31 };
32 
33 int main()
34 {
35     Solution sol;
36 
37     vector<int> arr = {3,2,4,1,5,6,7,0,9,8};
38 
39     sol.quick_sort(arr, 0, arr.size()-1);
40     sol.print_vector(arr);
41 
42     return 0;
43 }
View Code
复制代码

 

posted @   unicoe  阅读(861)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
历史上的今天:
2015-03-28 清华学堂 Range
点击右上角即可分享
微信分享提示