int kthLargestElement1(int k, vector<int> &nums)
{
// write your code here
int L = 0;
int R = nums.size() - 1;
int low = L;
int high = R;
while (L<R)
{
low = L;
high = R;
int key = nums[low];
while (low<high)
{
while (low<high && nums[high]<key)
high--;
nums[low] = nums[high];
while (low<high && nums[low] >= key)
low++;
nums[high] = nums[low];
}
nums[low] = key;
if (low == (k - 1))
return nums[low];
else if (low >(k - 1))
R = low - 1;
else
L = low + 1;
}
return nums[k - 1];
}
{
// write your code here
int L = 0;
int R = nums.size() - 1;
int low = L;
int high = R;
while (L<R)
{
low = L;
high = R;
int key = nums[low];
while (low<high)
{
while (low<high && nums[high]<key)
high--;
nums[low] = nums[high];
while (low<high && nums[low] >= key)
low++;
nums[high] = nums[low];
}
nums[low] = key;
if (low == (k - 1))
return nums[low];
else if (low >(k - 1))
R = low - 1;
else
L = low + 1;
}
return nums[k - 1];
}