我有这样的意见
A 100
B 150
C 200
D 250
E 300
我想要的输出是上面所有元素的总和:类似于
A to A - 100
A to B - 250
A to C - 450
A to D - 700
A to E - 1000
B to B - 150
B to C - 350
B to D - 600
B to E - 900
C to C - 200
C to D - 450
C to E - 650
D to D - 250
D to E - 550
E to E - 300
文件大小约为250MB。我写了一个python程序,它首先将每个行存储在字典中。但我认为,大规模投入是不可行的。我是linux的初学者。你知道吗
只需存储值和嵌套循环:
我认为对于大文件(您必须将整个文件存储在内存中,并且执行嵌套循环的操作是O(N^2)(或者是O(NlogN),已经有一段时间了……)操作,这样做仍然很慢。我怀疑把数据扔进数据库会帮到你。你知道吗
所以你的输入文件大约是250MB。我们称之为250MB,即262144000字节。您的代表性输入是每行7个字节—一个字符、两个空格、一个三位数和一个换行符。这意味着有37449142行。你知道吗
如果您的意图是最终为输入文件中的每一对可能的行生成一个输出,那么您需要准备存储37449142*37449143/2=701219136992653单独的输出行。代表性的是每个字节7个字节,忽略了大多数字节最终可能会更大的事实,即4908533958948571字节,即需要存储的4464 TB数据。你知道吗
希望您的预算有足够的资金来购买一些大型EMC阵列。否则,正如你所怀疑的,这可能有点不可行。。。你知道吗
使用python:
输出:
相关问题 更多 >
编程相关推荐