题解 | #最小的K个数#
最小的K个数
https://www.nowcoder.com/practice/6a296eb82cf844ca8539b57c23e6e9bf
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param input int整型一维数组 * @param inputLen int input数组长度 * @param k int整型 * @return int整型一维数组 * @return int* returnSize 返回数组行数 */ #include <stdio.h> int partition (int A[], int low, int high) { int pivot = A[low]; while (low < high) { while(low < high && A[high] >= pivot ) --high; A[low] = A[high]; while(low < high && A[low] <= pivot) ++low; A[high] = A[low]; } A[low] = pivot; return low; } void QuickSort (int A[], int low,int high) { if (low < high) { int pivotpos = partition(A, low,high); QuickSort(A, low, pivotpos -1); QuickSort(A, pivotpos +1, high); } } int* GetLeastNumbers_Solution(int* input, int inputLen, int k, int* returnSize ) { // write code here QuickSort(input, 0, inputLen-1); *returnSize =k; return input; }