Skip to content

Latest commit

 

History

History
61 lines (57 loc) · 5.59 KB

C++排序算法之快速排序.md

File metadata and controls

61 lines (57 loc) · 5.59 KB

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

//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;
} 

在这里插入图片描述