+ -
当前位置:首页 → 问答吧 → 求一个数组中最大的前n个数的下标

求一个数组中最大的前n个数的下标

时间:2011-11-20

来源:互联网

假设有一个数组,现求出数组中最大的前n个数的下标。

输入:一个数组 Input[]
输出:一个数组 Output[]

注意:
n是一个未知数。
Input中的数,很具有区分度,大小差别挺大。
Input中的数,有重复的。

例:
int Input[] ={1, 1, 2, 2, 3, 4, 5, 6, 7, 8, 9, 200, 12, 180, 190, 220, 221, 3, 5, 226};
// 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,18,19//这里是对应的坐标 

public static int[] Compute(int Input[]){

   
}

输出
Ouput={11,13,14,15,16,19}

Output是较大的几个数对应的下标.

作者: Ayuer_cn   发布时间: 2011-11-20

用快速排序的partition方式,每次partition
用数组Pos[n],记录下标的变化:如j号位置和i号位交换,那么就把Pos[i]=j

其他的就和partition求出前M大元素一模一样

作者: genio   发布时间: 2011-11-20

用最小堆吧

作者: keeya0416   发布时间: 2011-11-20

热门下载

更多