C++ 对数组的快速排序算法
【代码】C++ 对数组的快速排序算法。
·
#include "stdio.h"
//交换两个数
void swap(int &a,int &b){
int t=a;
a=b;
b=t;
}
//根据第一个数,把小于第一个数的数放在前面,把打印第一个数的数放在后面
int partition(int *a,int l,int r){
int p=a[l];
int i=l+1;
int j=i;
while (j<=r){
if(p>a[j]){
swap(a[i],a[j]);
i++;
}
j++;
}
swap(a[l],a[i-1]);
return i-1;
}
//快速排序
void quicklysort(int *a,int l,int r){
if(l<r){
int p=partition(a,l,r);
// 排序左边
quicklysort(a,l,p-1);
// 排序右边
quicklysort(a,p+1,r);
}
}
void sort(int *a,int n){
int l=0,r=n-1;
quicklysort(a,l,r);
}
int main(){
int n;
scanf("%d",&n);
int a[10000];
for (int i = 0; i < n; ++i) {
scanf("%d",&a[i]);
}
sort(a,n);
for (int i = 0; i < n; ++i) {
printf("%d\t",a[i]);
}
return 0;
}

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)