概述
#include<iostream>
using namespace std;
int partition(int *P,int l ,int r,int & pivot){
int temp;
while(l<r){
while(P[l]>=pivot && l<r) // l右移直到l对应的值小于轴值
l++;
while(P[r]<=pivot && l<r) // l右移直到l对应的值大于于轴值
r--;
temp=P[l]; // 交换l和r对应的值
P[l]=P[r];
P[r]=temp;
}
return l;
}
void Quick_sort(int *P,int i,int j){
if(j<=i) return; // 判断元素个数为0或1时不进行排序直接返回
int temp;
int pivotindex = (i+j)/2; // 确定轴值的位置
temp = P[j]; // 将轴值调放在最后
P[j] = P[pivotindex];
P[pivotindex] = temp;
int k = partition(P,i,j,P[j]); // 将右边的第一个位置放在k中
temp = P[k]; // 将轴值放到r和l相遇的位置
P[k] = P[j];
P[j] = temp;
Quick_sort(P,i,k-1); // 递归调用将序列分段排序
Quick_sort(P,k+1,j);
}
int main(){
int A[10];
for(int i=0;i<10;i++)
cin>>A[i];
Quick_sort(A,0,9);
for(int i=0;i<10;i++)
cout<<A[i]<<" ";
system("pause");
}
最后
以上就是风中白开水为你收集整理的数据结构之快速排序的 c++实现(中间元素为基值)的全部内容,希望文章能够帮你解决数据结构之快速排序的 c++实现(中间元素为基值)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复