问一个算法方面面试题目
实现一个方法,
传入一个大于5个元素的整数数组,初始数据未排序,
返回数组中,最大的前5个元素
要求:
不能在方法中进行排序.
语言不限.
我今天的面试题目,自己做出来了,就是感觉实现太复杂,求大家看看,尽可以简单的实现.
.谢谢了.
------解决方案--------------------可否使用大根堆,构造五次即可输出前五个数
------解决方案--------------------mark 借助于一些有这个属性的类去操作 比如datagridview
------解决方案--------------------
C# code
private void button1_Click(object sender, EventArgs e)
{
int[] a = { 5, 7, 23, 37, 13, 83 };
int[] b = GetFiveMax(a);
}
public int[] GetFiveMax(int[] array)
{
Array.Sort<int>(array, new Comparison<int>(func));
Array reArray = new int[5];
Array.Copy(array, reArray, 5);
return (int[])reArray;
}
public int func(int a, int b)
{
return b - a;
}
------解决方案--------------------
冒泡能实现啊,而且不用全部排序,5次大循环就够了,也不麻烦。
------解决方案--------------------