快排
2015-09-15 15:26
197 查看
class Solution { public: int Partition(vector<int> &nums, int left, int right) { // 采用子序列的第一个元素为枢纽元素 int pviont = nums[left]; while (left<right) { // 从后往前在后半部分中寻找第一个小于枢纽元素的元素 while(nums[right]>pviont) { right--; } swap(nums[right], nums[left]); while (nums[left]<pviont) { left++; } swap(nums[right], nums[left]); } return left; } void quickSort(vector<int> &nums,int left,int right) { if (left<right) { int n = Partition(nums, left, right); quickSort(nums, left, n); quickSort(nums, n+1, right); } } };
相关文章推荐
- Hibernate学习笔记-----关系映射(2)单向1-1关联
- 585 - Triangles(简单题)
- Android PackageManager 用法
- static作用:静态变量的生存周期和作用域
- DataTable只刷新列表,但不刷新页面
- ios 读取图片
- 如何在 Laravel 中使用 SMTP 发送邮件(适用于 163、QQ、Gmail 等)
- 关于iOS自定义UITabBar的几种方法
- Single Number III
- Android PackageManager 用法
- PHPCMS 多站点管理切换问题
- 关于 for(String s:arr)
- VMware虚拟机 停电 无法启动
- python htmldecode替换html实体
- mongodb java driver3.0初探
- OpenCV实现灰度直方图和直方图拉伸
- HTTP 的应答码,错误码,通信码
- CATransform3D 特效详解
- iOS开发的一些奇巧淫技
- .NET基础教程免费学,.NET实战开发教程