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; }
void find_k_max(int *arr, int size, int k) { int kth = kthLargest(arr, size, k); printf("kth = [%d]\n", kth); }