交换排序
借助交换进行排序
*起泡排序
#include<iostream>
using namespace std;
int main() {
int n,num[1005];
cin>>n;
for(int i=1;i<=n;i++) {
cin>>num[i];
}
for(int i=1;i<n;i++) {
for(int j=1;j<=n-i;j++) {
if(num[j]>num[j+1]) {
int temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
for(int i=1;i<=n;i++) {
cout<<num[i]<<" ";
}
}
*快速排序
#include<iostream>
using namespace std;
int num[1005],n;
int choosemid(int low,int high) {
num[0]=num[high];
while(low<high) {
while(num[low]<num[0]&&low<high) low++;
num[high]=num[low];
while(num[high]>num[0]&&low<high) high--;
num[low]=num[high];
}
num[low]=num[0];
return low;
}
void qsort(int low,int high) {
if(low>=high) return;
int mid=choosemid(low,high);
qsort(low,mid-1);
qsort(mid+1,high);
}
int main() {
cin>>n;
for(int i=1;i<=n;i++) {
cin>>num[i];
}
qsort(1,n);
for(int i=1;i<=n;i++) {
cout<<num[i]<<" ";
}
}