自输入的快速排序
#include <stdio.h>
int partition(int a[],int left,int right){
int pivot=a[left];
while(left<right){
while(left<right&&a[right]>=pivot){
right--;
}
a[left]=a[right];
while(left<right&&a[left]<=pivot){
left++;
}
a[right]=a[left];
}
a[left]=pivot;
return left;
}
void QuickSort(int a[],int left,int right){
if(left<right){
int pivotpos=partition(a,left,right);
QuickSort(a,left,pivotpos-1);
QuickSort(a,pivotpos+1,right);
}
}
int main(){
int n;
scanf("%d",&n);
int arr[n];
for(int i=0;i<n;i++){
scanf("%d",&arr[i]);
}
QuickSort(arr,0,n-1);
for(int i=0;i<n;i++){
printf("%d ",arr[i]);
}
return 0;
}
int partition(int a[],int left,int right){
int pivot=a[left];
while(left<right){
while(left<right&&a[right]>=pivot){
right--;
}
a[left]=a[right];
while(left<right&&a[left]<=pivot){
left++;
}
a[right]=a[left];
}
a[left]=pivot;
return left;
}
void QuickSort(int a[],int left,int right){
if(left<right){
int pivotpos=partition(a,left,right);
QuickSort(a,left,pivotpos-1);
QuickSort(a,pivotpos+1,right);
}
}
int main(){
int n;
scanf("%d",&n);
int arr[n];
for(int i=0;i<n;i++){
scanf("%d",&arr[i]);
}
QuickSort(arr,0,n-1);
for(int i=0;i<n;i++){
printf("%d ",arr[i]);
}
return 0;
}
全部评论
相关推荐
点赞 评论 收藏
分享