输入n个整数,输出其中最小的k个。
#include <iostream>
#include <time.h>
using namespace std;
/*函数作用:取待排序序列中low、mid、high三个位置上数据,选取他们中间的那个数据作为枢轴*/
int median(int arr[], int low, int high) {
int mid = low + ((high - low) >> 1); //计算数组中间的元素的下标
//使用三数取中法选择枢轴
if (arr[mid] > arr[high]) //目标: arr[mid] <= arr[high]
{
swap(arr[mid], arr[high]);
}
if (arr[low] > arr[high]) //目标: arr[low] <= arr[high]
{
swap(arr[low], arr[high]);
}
if (arr[mid] > arr[low]) //目标: arr[low] >= arr[mid]
{
swap(arr[mid], arr[low]);
}
//此时,arr[mid] &