c++快速排序模板

这是一个使用C++编写的快速排序算法实现。代码首先定义了一个名为qs的自定义函数,该函数接收一个整数数组和两个索引作为参数进行排序。在main函数中,用户输入数组大小和元素,然后调用qs函数对数组进行排序,并打印排序后的结果。
#include<iostream>
using namespace std;
void qs(int a[],int l,int r){
	if(l>=r){
		return;
	}
	int i=l-1,j=r+1;
	int t=a[(l+r)/2];
	while(i<j){
		do{
			i++;
		}
		while(a[i]<t);
		do{
			j--;
		}
		while(a[j]>t);
		if(i<j){
			swap(a[i],a[j]);
		}
	}
	qs(a,l,j);
	qs(a,j+1,r);
}
int main(){
	int num;
	cin>>num;
	const int b=num;
	int temp[b];
	for(int i=0;i<num;i++){
		cin>>temp[i];
	}
	qs(temp,0,num-1);
	for(int i=0;i<num;i++){
		cout<<temp[i]<<" ";
	}
	return 0;
}

这是一个自定义函数"qs"(quicksort)

因为考虑到有没登录的兄弟,所以我把代码放到这里了:

#include<iostream>
using namespace std;
void qs(int a[],int l,int r){
    if(l>=r){
        return;
    }
    int i=l-1,j=r+1;
    int t=a[(l+r)/2];
    while(i<j){
        do{
            i++;
        }
        while(a[i]<t);
        do{
            j--;
        }
        while(a[j]>t);
        if(i<j){
            swap(a[i],a[j]);
        }
    }
    qs(a,l,j);
    qs(a,j+1,r);
}
int main(){
    int num;
    cin>>num;
    const int b=num;
    int temp[b];
    for(int i=0;i<num;i++){
        cin>>temp[i];
    }
    qs(temp,0,num-1);
    for(int i=0;i<num;i++){
        cout<<temp[i]<<" ";
    }
    return 0;
}

怎么样?够义气吧?给个赞吧

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值