#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
//快速排序
int arr[100];
int n;
int sorts(int arr[],int l,int r);
void quickSort(int arr[],int l,int r){
int mid=sorts(arr,l,r);
for(int i=0;i<n;i++){
cout<<arr[i]<<" ";
}
cout<<endl;
if(l>mid-1){
quickSort(arr,l,mid-1);
}
if(mid<r){
quickSort(arr,mid,r);
}
}
void swap(int arr[],int l,int r){
int tmp=arr[l];
arr[l]=arr[r];
arr[r]=tmp;
}
int sorts(int arr[],int l,int r){
int mid=(l+r)/2;
int index=arr[mid];
int helperl=l,helperr=r;
while(helperl<=helperr){
while(arr[helperl]<index)helperl++;
while(arr[helperr]>index)helperr--;
if(helperl<=helperr){
swap(arr,helperl,helperr);
helperl++;
helperr--;
}
}
return helperl;
}
int main(){
cin>>n;
for(int i=0;i<n;i++){
cin>>arr[i];
}
for(int i=0;i<n;i++){
cout<<arr[i]<<" ";
}
cout<<endl;
quickSort(arr,0,n-1);
for(int i=0;i<n;i++){
cout<<arr[i]<<" ";
}
cout<<endl;
return 0;
}
c++实现快排。。下午补充
最新推荐文章于 2024-03-15 17:22:03 发布