当前位置: 代码迷 >> ASP.NET >> 问一个算法方面面试题目,该怎么解决
  详细解决方案

问一个算法方面面试题目,该怎么解决

热度:9405   发布时间:2013-02-25 00:00:00.0
问一个算法方面面试题目
实现一个方法,
传入一个大于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次大循环就够了,也不麻烦。
------解决方案--------------------------------------------------------
探讨
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…
  相关解决方案