练习问题来源 https://wizardforcel.gitbooks.io/the-art-of-programming-by-july/content/02.01.html 要求 输入n个整数,输出其中最小的k个 解法 最直观的思路,先对 n 个数排序,再一次输出 k 个数,用快速排序,时间复杂度为 O(n*logn) 另一种方法,输出的前 k 个最小的数没要求有顺序.可以先取前 k 个数,遍历找到最大的数记 kmax ,再重剩下的 n - k 个数中依次判断是否有 < kmax 的数,若…
编程之美2.5:寻找最大的K个数 引申:寻找第k大的数: 方法一: // 选择第k大的数(通过改进快速排序来实现) public static void SelectShort(int[] array, int low, int high, int k, out int value) { int i = low; int j = high; int tempItem = array[low]; value = int.MinValue; while (low < high) { while (a…