#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;
}
怎么样?够义气吧?给个赞吧
这是一个使用C++编写的快速排序算法实现。代码首先定义了一个名为qs的自定义函数,该函数接收一个整数数组和两个索引作为参数进行排序。在main函数中,用户输入数组大小和元素,然后调用qs函数对数组进行排序,并打印排序后的结果。
903

被折叠的 条评论
为什么被折叠?



