Javascript 如何处理大量数据-周期表和元素
我想用大量的数据来操作——元素和元素周期表。 首先让程序返回给定元素的原子量。你会怎么做 通过手动创建一个包含118个元素的表,并在Javascript 如何处理大量数据-周期表和元素,javascript,c++,Javascript,C++,我想用大量的数据来操作——元素和元素周期表。 首先让程序返回给定元素的原子量。你会怎么做 通过手动创建一个包含118个元素的表,并在tab1[element][]中搜索给定元素,然后通过最多118次迭代传递tab1[][atomic_\u weight] 或者不在程序表中创建,而是创建一个包含数据的文件?语言是C++和JS(浏览器中JS,你不能处理本地文件,但只能通过服务器使用Ajax来处理,是的?)p> 之后,它将不得不执行更高级的计算。当然,数据库会有帮助,但不使用它?我建议将所有元素信息放
tab1[element][]
中搜索给定元素,然后通过最多118次迭代传递tab1[][atomic_\u weight]
或者不在程序表中创建,而是创建一个包含数据的文件?语言是C++和JS(浏览器中JS,你不能处理本地文件,但只能通过服务器使用Ajax来处理,是的?)p>
之后,它将不得不执行更高级的计算。当然,数据库会有帮助,但不使用它?我建议将所有元素信息放入一个结构中。
例如:
struct Element_Attributes
{
const char * symbol;
unsigned int weight;
};
包含这些元素的数据结构各不相同,具体取决于您希望如何访问它们
因为元素周期表上有列和行,所以矩阵是合适的。矩阵中有空白区域,因此您的程序必须处理矩阵中的{浪费的}空白空间
另一个想法是有行和列链接。行链接将指向行中的下一个元素。列链接将指向列中的下一个元素。这将比矩阵的访问时间慢,但不会有空插槽(链接)
另外,除非有人(用户)说程序太慢,否则不要担心程序的性能。其他实体通常比执行循环慢。其中一些实体是文件I/O和用户I/O
编辑1-实施表中有33列和7行:
#define MAX_ROWS 7
#define MAX_COLUMNS 33
Element_Attributes Periodic_Table[MAX_ROWS][MAX_COLUMNS];
可以手动创建元素并将其添加到表中:
Element_Attributes hydrogen = {"H", 1};
Periodic_Table[0][0] = hydrogen;
该表也可以静态定义(声明时)。这是留给读者的练习
搜索:
bool element_found = false;
for (unsigned int row = 0; row < MAX_ROWS; ++row)
{
for (unsigned int column = 0; column < MAX_COLUMNS; ++column)
{
const std::string element_symbol = Periodic_Table[row][column].symbol;
if (element_symbol == "K") // Search for Potassium
{
element_found = true;
break;
}
}
if (element_found)
{
break;
}
}
bool元素\u found=false;
for(无符号整数行=0;行<最大行数;++行)
{
for(无符号整数列=0;列
以下是实现这一目标的步骤:对已设计的对象使用一维数组。这就是为什么面向对象编程如此伟大的原因之一。以后可以很容易地扩展它
为什么使用一维数组?
你没有骗我。你还有很长的路要走。首先学习编程。对于118个元素,线性搜索可能与其他搜索一样有效。使用其他搜索所节省的时间可能并不重要(例如纳秒或毫秒)。另外118个项目的数量不是很大。所以你的意思是它应该迭代?好啊但是,例如在C++中,我们考虑一个<代码>字符串Tab1[];代码>,第一个[]将是元素,但第二个[]应该是整数/浮点,如何选择合适的方法?合适的方法是将所有属性放在一个结构中。不要用一个数组作为名称,另一个数组作为原子序数,而是将原子序数和名称放入一个结构中,然后使用一个结构数组。请看下面我的回答:“您知道数据结构有多大,而且不会改变”——不一定。2010年发现了ununsuspetium,但尚未完全证实。未来可能会有更多的元素:P@Steve别跟我耍花招=)