有14个大集合,每个集合大概有50个小集合,每个小集合大概最多有3个一位数的数字
对这14 个大集合进行如下排列
1:每次取2个大集合里面的数据,与剩下的大集合进行交集。有很N种取法
2:每次取3个大集合里面的数据,与剩下的大集合进行交集。有很N种取法
3:每次取4个大集合里面的数据,与剩下的大集合进行交集。有很N种取法
4:每次取5个大集合里面的数据,与剩下的大集合进行交集。有很N种取法
5:每次取6个大集合里面的数据,与剩下的大集合进行交集。有很N种取法
最后再去掉重复的,程序居然要等好几秒钟才算出来,要么,就死机
啥原因,号称计算机,就这个样?有没有好的办法,提高计算速度
对这14 个大集合进行如下排列
1:每次取2个大集合里面的数据,与剩下的大集合进行交集。有很N种取法
2:每次取3个大集合里面的数据,与剩下的大集合进行交集。有很N种取法
3:每次取4个大集合里面的数据,与剩下的大集合进行交集。有很N种取法
4:每次取5个大集合里面的数据,与剩下的大集合进行交集。有很N种取法
5:每次取6个大集合里面的数据,与剩下的大集合进行交集。有很N种取法
最后再去掉重复的,程序居然要等好几秒钟才算出来,要么,就死机
啥原因,号称计算机,就这个样?有没有好的办法,提高计算速度
解决方案 »
- c#新手求解 读取文件
- 如何屏蔽鼠标右键复制汉字功能TextBox控件只能输入数字
- 再问。。如何快速检测一个ftp是否可以访问
- c#操作ExcelCreator的问题
- winform的dataGridView里的问题``高手进```在线等~~急
- 事件处理方法绑定的位置
- 我在使用SqlCommand时……?
- NHibernate map文件中sqlserver money对应什么类型,长度多少?
- C#获取本机IP
- HELP~~~~~~~~~,为什么解决方案中的某些类库不能编译了
- 解析Office2007文档
- 未能找到类型或命名空间名称“WebActivator”(是否缺少 using 指令或程序集引用?)
数据库就是对于大数据量检索用的。有很多优化算法。比如按条件查询,排序,存储过程的计算优化等等所以具体用法如下:
1.可以将14大集*50小集*3个数,导入数据库共有2100条数据
2.用SQL语句借助数据库引擎分类提数。(这点数据量access足够了)哎!这解释真累
不用数据库也可以实现把数据放到datatbale中,意思是一样的。重要的是多线程。充分利用多核CPU。
具体算法,没法帮你了。
查询时,Cpu 的控制权不是交了给 数据库管理系统? 所以应该多线程 与单线程 差不多速度的啊。
为了一个这么简单的算法,还非要数据库,如同大学生算个10以内的加减乘除还要计算器。这一点你连lz都不如。
如果你建议lz用数据库的话,为什么不建议他用LINQ、Erlang、Haskell、Matlab
反之多线程比单线程快。具体你可以查看计算机硬件文章,不多解释了。
使用数据库管理系统,在感觉上是会比数据放在内存慢,但是数据库是专门对数据提取优化的。而内存中的数据你不一定优化过。我们假设把两千多条数据存放在了DataTable中。那么你查询数据一般会使用Dataview,或则是DataTable自带的筛选。如果是使用数据库存放,你可以为表建立索引。加上数据库自带的缓存等等一大堆。实际运行就不一样了。你想想是Datatable对查询专业呢还是数据库专业。
一般来说会有速度提升。但是2000条数据如果算法不是很复杂应当效果不太明显。
List<string> list2 = new List<string>{"0","1"}
如果其中一个集合的元素被完全包含在另个一个集合中,则取元素多的,丢弃元素少的那个
此问题在http://topic.csdn.net/u/20111027/23/592d04f7-b57d-4d0a-be3d-cfb7184af252.html有答案2:现在有14个大集合,类型:List<List<string>>
每一个大集合里面装了大概有最多不超过1000个List<string>类型的小集合3:
每次从14个大集合中取2个大集合,是不是有很多种取法啊,然后,分别把每种取法都要计算,怎么计算呢?就按照第一点的规则进行计算每次从14个大集合中取3个大集合,是不是有很多种取法啊,然后,分别把每种取法都要计算,怎么计算呢?就按照第一点的规则进行计算每次从14个大集合中取4个大集合,是不是有很多种取法啊,然后,分别把每种取法都要计算,怎么计算呢?就按照第一点的规则进行计算每次从14个大集合中取5个大集合,是不是有很多种取法啊,然后,分别把每种取法都要计算,怎么计算呢?就按照第一点的规则进行计算每次从14个大集合中取6个大集合,是不是有很多种取法啊,然后,分别把每种取法都要计算,怎么计算呢?就按照第一点的规则进行计算
最后的计算结果,去掉重复即可
每次计算要花好几秒,或者无反应,类似死机
1.数据类型
你的例子中都是string型的,但是内容都是整数,如果真是案例中是数字则可以用数字,理论上数字检索速度极大的大于字符串。不过你的实际例子可能就是字符串。这点就可跳过
2.算法
看了你的问题贴,大家根据你的提问,回答基本都是用foreach循环穷举。效率低下。没有分类,没有索引。
3.数据量
根据你之前的说法数据量是2000条,后来又说14*1000是一万多条。这个基本是一个数量级的差别了。要是我做我就导入到数据库中根据数据建立分类。针对分类建立相应索引。每次根据要求就提取一小部分。然后针对这部分做循环。你可能用的少我给你举个例子
提取数据的时候先对第一个字段做查询,然后再利用嵌套的方法查询第二字段,以此类推,如果有索引。数据提取速度穷举循环可比的。