C语言代码,需要自己输入数组大小,元素,k值
#include <stdio.h>
// 定义快速排序函数
void quickSort(int arr[], int l, int r)
{
if (l >= r)
{
return;
}
int pivot = arr[l];
int i = l, j = r;
while (i < j)
{
while (i < j && arr[j] >= pivot)
{
j--;
}
arr[i] = arr[j];
while (i < j && arr[i] <= pivot)
{
i++;
}
arr[j] = arr[i];
}
arr[i] = pivot;
quickSort(arr, l, i - 1);
quickSort(arr, i + 1, r);
}
int findKthLargest(int* nums, int numsSize, int k)
{
quickSort(nums, 0, numsSize - 1);
return nums[numsSize - k];
}
int main()
{
int m, k;
// 输入数组元素个数(≤100)
printf("输入元素个数:\n");
scanf("%d", &m);
int nums[m];
// 输入数组的元素
printf("输入数组元素:\n");
for (int i = 0; i < m; ++i)
{
scanf("%d", &nums[i]);
}
printf("输入k值:");
scanf("%d",&k);
int numsSize = sizeof(nums) / sizeof(nums[0]);
int result = findKthLargest(nums, numsSize, k);
printf("%d\n", result);
return 0;
}