struct student kthLargest(struct student a[], int l, int r, int k)
{
	if (k > 0 && k <= r - l + 1)
	{
		int pos = qfindPivot1(a, l, r);
		if (pos == k - 1)
		{
			printf("%d \n", a[pos].score);
			return a[pos];
		}
		if (pos  > k - 1)
			return kthLargest(a, l, pos - 1, k);
		return kthLargest(a, pos + 1, r, k - pos + l - 1);
	}
	//return INT_MAX;
}
Example #2
0
void find_k_max(int *arr, int size, int k)
{
	int kth = kthLargest(arr, size, k);

	printf("kth = [%d]\n", kth);
}