目标:
我想实现一个函数,该函数具有一系列输入“X1,...,Xn”并输出一个有序列表“Xp,..,Xq”,其中所有元素都是不同但有序的。
要求:
- 对于序列“X1,...,Xn”中的每个 Xi,它都是一个 256 位长的字符串。
- 输入序列“X1,...,Xn”可能具有相同的元素,这意味着可能存在两个元素Xi和Xj以满足Xi=Xj。
- 对于“X1,...,Xn”序列中的相同元素,我们只输出有序列表中的一个元素。
- 函数的速度应该尽可能快。函数中使用了多少存储量并不重要。
- 序列“X1,...,Xn”的大小为n,n是不超过10,000的数字。
我的想法:
我使用一个数组来存储最初为空的序列。
输入Xi的时候,首先搜索Hashtable,判断Xi是否已经在上面的数组中。如果是,就扔掉它。如果没有,请将 Xi 添加到 Hashtable 和 Array。
如果输入了序列“X1,...,Xn”的所有元素,我对数组进行排序并输出它。
问题:
- 对于 Merkle Patricia Tree (Ethereum) 和 Hashtable,我应该选择哪一个?
- 对于 Merkle Patricia Tree (Ethereum) 和 Hashtable,哪个搜索速度更快?
- 还是有更好的数据结构来满足这个功能?