问题:
如题,寻找最大的K个数
解法一:
全部排序,取最大的K个数。
解法二:
利用快速排序,取最大K个数。
void partition(int input_array[], int number)
{
//取中间数做比较
int i = (input_array[0] + input_array[number / 2] + input_array[number - 1]) / 3;
int left = 0;
int right = number - 1;
int temp = 0;
while(left != right)
{
if (input_array[left] <= i)
left++;
else
{
if (input_array[right] >= i)
right--;
else
{
temp = input_array[left];
input_array[left] = input_array[right];
input_array[right] = temp;
left++;
right--;
}
}
}
return;
}
未完待续。。。