输入一个int型的数组(数量大于5),请写个算法,返回最大的5个数,请用c#写。

来源:百度知道 编辑:UC知道 时间:2024/06/23 18:18:02
public int[] TopFiveMax(int[] array)
{
//算法
}
Sorry,不能用排序
这里说“输入一个数组”,是指当参数传进来,不需要自己生成
afei929 的算法是对的,但是复杂度太高了,需要5*N次计算,有没有复杂度低的算法啊。
长度不限啊。

//结果放在一个数组中
int[] getMaxFiveElement(int[] intArr)
{
int[] result =new int[5];
for(int i=0; i<5; i++) //只要找5次
{
int max = i; //假设i是最大的
for( int j=i+1; j<intArr.length; j++) //与他后面的元素比较,找到真正最大的
{
if(intArr[i]<intArr[j])
max = intArr[j];
result.push(max);
int temp = intArr[i]; //将最大的放在数组最前面不再理了
intArr[i] = intArr[j];
intArr[j] = temp;
}
}
return result;
}

-------------------
你数组的长度是多少?
你虽然不是排序,但是用的是排序的算法。你可以比较一下各种排序算法看看哪种适合你的要求。

int[] intArr=new int[100];
ArrayList myList=new ArrayList();
Random rnd=new Random();
while(myList.Count<100)
{
int num=rnd.Next(1,101);
if(!myList.Cont

输入一个int型的数组(数量大于5),请写个算法,返回最大的5个数,请用c#写。 现有一个int 型数组,如何使其输入到.txt文件中,且能打开看,下次运行该程序能保留原有的记录? 能否将一个int 型的数组,一个float型的数组和一个double型的数组放在同一个多维数组里面? 输入不定数量的数字装入数组的方法 char *p, 请问((int*)p)++能不能遍历一个int类型的数组? java如何返回一个int数组? int a;scanf("%d",&a);int b[a];这是错误的,那如何定义一个数组,使数组的长度接受键盘敲入? char 类型的数组可不可以转为int类型的数组? 用类的方法判断数组int a[6][6]是否是一个上三角。 c++输入数组int a[10]的每一个元素,并求该数组中奇数的个数和平均值以及偶数的个数和平均值。