编辑代码

#include <stdio.h>

int part(int arr[], int arrstart, int arrend,int k) {
	int low=arrstart;
    int high= arrend;
	int pre = arr[arrstart];
	while (arrstart < arrend) {
		while (arrstart<arrend&&arr[arrend]<pre)
			arrend--;
		arr[arrstart] = arr[arrend];
		while (arrstart < arrend&&arr[arrstart] > pre)
			arrstart++;
		arr[arrend] = arr[arrstart];
	}
	arr[arrstart] = pre;
    if(arrstart == (k-1)){
        return arrstart;
    }
    else if(arrstart>(k-1)){
        part(arr, low, arrstart - 1,k);
		
    }else{
        part(arr, arrstart + 1, high,k);
    }
	
}


int main() {
	int arr[] = { 4,9,6,21,69,99,63,100 };
	int k=4;
	int index=part(arr, 0, 7,k);
	printf("第%d个大值为%d",k,arr[index]);
	
	return 0;
}