#include <stdio.h>
#include <stdlib.h>
int partion(int arr[],int low,int high){
int pivot;
pivot=arr[low];
while(low<high){
while(arr[high]>=pivot&&low<high){
high--;
}
arr[low]=arr[high];
while(arr[low]<=pivot&&low<high){
low++;
}
arr[high]=arr[low];
}
arr[low]=pivot;
return low;
}
void quicksort(int arr[],int low,int high){
int pivot_index;
if(low<high){
pivot_index=partion(arr,low,high);
quicksort(arr,low,pivot_index-1);
quicksort(arr,pivot_index+1,high);
}
}
void main(){
int n,i;
int arr[30];
printf("input integer number(<30):");
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&arr[i]);
}
quicksort(arr,0,n-1);
printf("quicksort result:\n");
for(i=0;i<n;i++) {
printf("%d ",arr[i]);
}
}
运行结果如下:

本文详细介绍了一个快速排序算法的C语言实现过程。通过递归调用partition函数,将数组分为两部分,一部分的所有元素都比另一部分的所有元素小,然后分别对这两部分进行排序。文章通过一个具体的例子展示了如何输入一组整数,然后使用快速排序算法对其进行排序,并输出排序后的结果。
3万+

被折叠的 条评论
为什么被折叠?



