0

要求

  1. 与给定Map<String, String>
  2. 百分比编码每个键/值条目
  3. 按编码键对条目进行排序
  4. 将它们附加为单个字符串,例如?a=b&c=d

方法一

  1. 准备一个TreeMap.
  2. 将这些编码的键/值条目放入此映射。
  3. 在迭代地图时连接输出字符串。

方法二

  1. 准备一个ArrayList具有预测大小的 (source-map.size *2)
  2. 在找到正确位置的同时插入那些编码键/值
  3. 在迭代列表时连接输出字符串

方法 3

  1. 准备一个LinkedList
  2. 在找到正确位置的同时插入那些编码键/值
  3. 在迭代列表时连接输出字符串

哪种方法最好?

4

1 回答 1

5

n 为键值对数的渐近复杂度:

方法 1:O(n log n)

方法2:O(n^2)

方法3:O(n^2)

对于相当大的 n,第一种方法将比其他方法更快,但当键很少时,其他方法可能更快。

于 2013-07-23T06:58:11.780 回答