求两个已按由小到大排序的数组中最大的前十个数
如题 希望能给出比较优化的算法。谢谢! --------------------编程问答-------------------- list<int>lst=new list<int>();lst=lst.skip(10),take(10).tolist(); --------------------编程问答-------------------- 前10个就是答案 --------------------编程问答-------------------- 从后开始遍历 循环十次就行了 --------------------编程问答-------------------- 能不能不用类库里直接给的函数??
--------------------编程问答-------------------- 已经排序了,那后10个就是你要的了,你还想怎么样啊 --------------------编程问答--------------------
能否详细点?我没写出来。。。所以想学习下。。。:) --------------------编程问答--------------------
还不详细 --------------------编程问答-------------------- list<int>lst=new list<int>();
lst.Sort
lst=lst.take(10).tolist();
(from a in lst orderby a descending select a ).Take(10) --------------------编程问答-------------------- 把两个数组放到一个list<int>中,然后排序,取前10个... --------------------编程问答-------------------- 分别取前十个,归并 --------------------编程问答-------------------- class Program
{
static void Main(string[] args)
{
int[] intarr1 = { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 };
int[] intarr2 = { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18 };
List<int> intlist = new List<int>();
foreach (int n in intarr1)
{
intlist.Add(n);
}
foreach (int n in intarr2)
{
intlist.Add(n);
}
intlist.Sort();
intlist.Reverse();
intlist = intlist.Take(10).ToList();
intlist.ForEach(it => { Console.Write(it); });
Console.ReadKey();
}
} --------------------编程问答--------------------
从数组A中取出最后的的10个 a1 - a10, a10最大,a1最小,放到新的数组R中
从数组B中取出最后的的10个 b1 - b10, b10最大,b1最小,
--------------------编程问答-------------------- 如果a1 >= b10, 或者b1 >= a10就不用再比了,直接取较大的那个数组
R[0] = a10;
R[1] = a9;
...
R[9] = a1;
for( temp from b10 to b1)
{
if( temp <= a1)// temp后面的肯定都比a1小,所以不用再比了
break;
else
{
// 将temp放到R中,并保证R有序,可以使用折半等方法,这样原来a1的值就相当于被移走了
}
补充:.NET技术 , C#