算法中分治策略实现快速排序
来源:互联网 发布:管家婆怎么备份数据 编辑:程序博客网 时间:2024/06/01 10:32
快速排序算法是基于分治策略的一个排序算法,其基本思想是,对于输入的子数组,按以下三个步骤求解:
1 分解:选择一个基准元素,将整个数组分为大于基准元素,等于基准元素,小于基准元素的三组。基准元素在在划分的过程中确定
2 递归求解:通过递归调用快速排序算法分别对大于和小于基准元素的数组进行排序
3 合并:将递归的子数组进行合并最后成为排好序的数组
下面是程序的代码:
#include<iostream>
using namespace std;
int Partition(int a[],int p ,int r)
{
int i = p,j=r+1,sub;
int x = a[p];
//将<x的元素交换到左边区域
//将>x的元素交换到右边区域
while(true)
{
while(a[++i]<x&&j<r);
while(a[--j]>x);
if(i>=j) break;
sub = a[i];
a[i] = a[j];
a[j] =sub;
}
a[p] = a[j];
a[j] =x;
return j;
}
void QuickSort(int a[],int p,int r)
{
if(p<r)
{
int q = Partition(a,p,r);
QuickSort(a,p,q-1);//对左半段排序
QuickSort(a,q+1,r);//对右半段排序
}
}
int main()
{
int aa[4]={2,3,1,5};
QuickSort(aa,0,3);
for(int i= 0; i<4;i++)
cout<<aa[i]<<" ";
}
- 算法中分治策略实现快速排序
- 算法中分治策略实现合并排序
- 分治算法实现快速排序
- 分治策略实现快速排序法
- 分治策略----快速排序
- 算法导论中快速排序的三步分治实现
- 分治法实现快速排序算法
- 算法基础(3)分治策略之快速排序
- 算法笔记六:使用分治策略执行快速排序
- 算法学习(5)分治策略(快速排序)
- 分治算法-快速排序
- 分治算法----快速排序
- 快速排序-分治算法
- 分治算法---快速排序
- 分治算法 快速排序
- 算法学习之路:分治策略-归并排序-java实现
- 基于分治策略的排序算法:合并排序和快速排序
- 分治算法之快速排序
- 配置实现功能介绍-编辑页面(工作流任务界面)
- cookis
- Ubuntu下使用Eclipse CDT创建OpenCV项目
- 10.26
- KDE crash handler ( X windows )
- 算法中分治策略实现快速排序
- 配置实现功能介绍-工作流
- 数据库扫盲
- XML中Xpath语法的使用
- Eclipse BreakPoint断点调试技巧和基本步骤方法
- 自己翻译的官方文档:tomcat配置log4j
- c++中的前置运算符和后置运算符在VC6.0和在VS2008中的编译顺序居然是不一样的!!!
- ldconfig提示is not a symbolic link警告的去除方法
- QString 与中文问题