#include<stdio.h>
const int N = 10010;
int data[N];
#define swap(a,b){int temp = a;a = b;b = temp;}
int paikuai(int left,int right){
int i = left;
int temp = data[right];
for(int j = left;j<right;j++){
if(data[j]<temp){
swap(data[j],data[i]);
i++;
}
}
swap(data[i],data[right]);
return i;
}
void quaisort(int left,int right){
if(left<right){
int i = paikuai(left,right);
quaisort(left,i-1);
quaisort(i+1,right);
}
}
int main(){
int n,kk;
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&data[i]);
}
scanf("%d",&kk);
quaisort(1,n);
printf("%d",data[kk]);
return 0;
}
头哥-分治法-中值问题
C语言实现快速排序算法,
最新推荐文章于 2025-11-25 11:23:44 发布
这是一个使用C语言编写的快速排序算法实现。代码首先定义了常量和交换函数,然后通过paikuai函数进行分区操作,quaisort函数递归地对数组进行排序。在主函数中,读取数据并调用快速排序函数,最后输出第kk个元素的值。
740





