Problem: lab-week4- exercise02 Quick sort
Problem
Analysis
Algorithm: Quick Sort 快速排序
Code
Python
def quicksort(arr,l,r):if l >= r:return arrelse:p=arr[l]i=lj=rwhile i<j:while i<j and arr[j]>p:j-=1while i<j and arr[i]<=p:i+=1if i<j:arr[i],arr[j]=arr[j],arr[i]arr[i],arr[l]=arr[l],arr[i]quicksort(arr,l,i-1)quicksort(arr,i+1,r)return an=int(input())
if n==0:print()
else:a=list(map(int,input().split()))quicksort(a,0,n-1)print(*a)
C++
#include<iostream>
#include<cstdio>
using namespace std;
int n;
int a[2000005];void quicksort(int l,int r){if(l>=r) return;int p=a[l];int i=l;int j=r;while(i<j){while(i<j&&a[j]>p){j-=1;}while(i<j&&a[i]<=p){i+=1;}if(i<j){swap(a[i],a[j]);}}swap(a[i],a[l]);quicksort(l,i-1);quicksort(i+1,r);
}
int main(){cin>>n;if(!n){cout<<endl;return 0;}for(int i=1;i<=n;++i){cin>>a[i];}quicksort(1,n);for(int i=1;i<=n;++i){cout<<a[i]<<" ";}cout<<endl;return 0;
}