相关疑难解决方法(0)

在.NET中存储稀疏矩阵的最佳方法

我们有一个存储稀疏矩阵的应用程序.该矩阵具有主要存在于矩阵的主对角线周围的条目.我想知道是否有任何有效的算法(或现有的库)可以有效地处理这种稀疏矩阵?优选地,这将是通用实现,其中每个矩阵条目可以是用户定义的类型.

编辑以回答问题/回复:

当我主要围绕主对角线说我的意思是大多数矩阵的特征是大多数条目聚集在主对角线之外但是可能存在靠近对角线的零并且可能存在远离的非零值对角线.我想要一些有效的"大多数"案例.

我将用它做什么?我需要能够有效地访问一行中的所有值或列中的所有值.存储的值将是布尔值.一个例子是:

  1. 对于连续的所有真值,foreach列中的true出现在将列的所有条目设置为某个值
  2. 对于连续的所有错误值,将条目设置为某个值

这些都是先前使用链接列表完成的,但实现起来非常混乱.我希望用稀疏矩阵可以改进算法但是找到"正确"类型的稀疏矩阵算法已经证明是困难的.

ps感谢迄今为止的回复

.net performance sparse-matrix

10
推荐指数
1
解决办法
5862
查看次数

C#:可以返回新添加对象的排序位置的通用排序容器?

我需要一个通用容器来保持其元素排序,并且可以询问它将插入新元素的位置(在哪个位置),而不实际插入它.

这样的容器是否存在于.NET库中?最好的例子是一个例子(容器按ASCII值对字符进行排序,假设unicode不存在):

sortedContainer.Add('d');
sortedContainer.Add('b');
sortedContainer.Add('g');

//container contains elements ordered like 'b' 'd' 'g'
//index  -------------------------------->  0   1   2

sortedContainer.GetSortedIndex('a'); //returns 0
sortedContainer.GetSortedIndex('b'); //returns 0

sortedContainer.GetSortedIndex('c'); //returns 1
sortedContainer.GetSortedIndex('d'); //returns 1

sortedContainer.GetSortedIndex('e'); //returns 2
sortedContainer.GetSortedIndex('f'); //returns 2
sortedContainer.GetSortedIndex('g'); //returns 2

sortedContainer.GetSortedIndex('h'); //returns 3
[...]
Run Code Online (Sandbox Code Playgroud)

搜索位置应该利用元素排序的事实.

.net c# sorting generics

3
推荐指数
1
解决办法
2290
查看次数

标签 统计

.net ×2

c# ×1

generics ×1

performance ×1

sorting ×1

sparse-matrix ×1