the*_*ist 5 c# linq arrays algorithm
我有多个int数组:
1) [1 , 202,4 ,55]
2) [40, 7]
3) [2 , 48 ,5]
4) [40, 8 ,90]
Run Code Online (Sandbox Code Playgroud)
我需要获得所有位置中数字最大的数组.在我的情况下,这将是阵列#4.说明:
你能建议一个有效的算法吗?与Linq合作会更好.
UPDATE
长度没有限制,但只要任何位置的某个数字更大,所以此数组是最大的.
我建议“二叉搜索树”。它允许快速访问最小和最大元素。
http://en.wikipedia.org/wiki/Binary_search_tree
每个数组需要一棵树,以及组合数组的一棵树。
如果您打算让树变得更大,您还可以搜索“红黑 BST”算法来轻松优化树。
编辑:
普通的 BST 本身很快,但是当添加元素时,树会变得非常不平衡 - 例如:如果每个新添加的变量的值平均而言都大于前一个变量,则到达最大值的路径将变得越来越长,而达到最小值的路径仍然很短。红黑 BST 是平衡的 - 到最远元素(包括最小和最大)的路径仍然同样短。有一种更快的 BST 类型,但据我所知,它们很难编码。
但如果你打算使用红黑 BST,我建议你首先掌握常用的 BST。
| 归档时间: |
|
| 查看次数: |
886 次 |
| 最近记录: |