我是靠谱客的博主 风中白开水,最近开发中收集的这篇文章主要介绍数据结构之快速排序的 c++实现(中间元素为基值),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

#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++实现(中间元素为基值)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部