//Author:PanDaoxi
#include <iostream>
using namespace std;
const int maxn=101;
int a[maxn];
// 快速排序函数
void qsort(int left,int right){
// 递归边界:如果left>=right(即这一趟排序完成)
if(left>=right) return;
// 保存基准值和左右指针
int x=a[left],i=left,j=right;
while(i<j){
// 处理左右指针间的数值
while(i<j&&a[j]>=x) j--; // 右边数值比基准值大
a[i]=a[j];
while(i<j&&a[i]<=x) i++; // 右边数值比基准值小
a[j]=a[i];
}
a[i]=x; // 放回基准值
// 递归快速排序
qsort(left,i-1); // 左边序列排序
qsort(i+1,right); // 右边序列排序
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
// 快速排序:从数组a下标到n
qsort(1,n);
for(int i=1;i<=n;i++){
cout<<a[i]<<" ";
}
return 0;
}
C++排序算法之快速排序
原创
©著作权归作者所有:来自51CTO博客作者PanDaoxi的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:C++归并排序并输出第k小的元素
下一篇:C++排序算法之归并排序
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【C】排序算法
文章介绍了几种常用的排序,包括其实现思路与具体代码实现。
排序 算法 代码分析 -
排序算法之计数排序的优化
排序算法之计数排序的优化
数组 计数排序 最小值 -
C++排序算法之快速排序
C++排序算法之快速排序!
算法 c++ 快速排序 i++ 递归 -
C++排序算法之选择排序
C++排序算法之选择排序!
算法 c++ i++ ios #include -
C++排序算法之桶排序
C++排序算法之桶排序!
算法 c++ i++ ios #include -
快速排序之C++实现
在递归的过程中,每层递归都需要保存一些临时变量,包括基准元素的索引、左右指针的位置等,这些变量占用的空间与递归
c++ java 算法 快速排序 数组 -
C++排序算法之归并排序
C++排序算法之归并排序!
算法 c++ 数据结构 i++ 归并排序 -
C++排序算法之优化冒泡排序
C++排序算法之优化冒泡排序算法!
算法 c++ i++ #include ios -
C++排序算法之插入排序
C++排序算法之插入排序!
算法 c++ i++ ios #include