将题目具体一点,例如,从100个数中取出从大到小排前10的数 方法1:使用快速排序 因为快速排序一趟下来,小于K的数都在K的前面,大于K的数都在K的后面 如果,小于K的数有35个,大于K的数有64个 那么,所以我们取top 10时,只需要在前35个数中进行递归快速排序,所以不需要对所有的数进行排序 方法2:使用堆排序 首先在前10个数中建议一个小根堆, 因为是小根堆,所以前10个数中最小的数在index=0上 然后遍历从11到100的数,如果p[i]>p[0],那么交换p[i]和p[0],然后重