【问题标题】:better complexity for reading data (string to integer represntation)读取数据更复杂(字符串到整数表示)
【发布时间】:2023-03-23 11:33:01
【问题描述】:

我必须逐行读取一个文本文件,并在每一行中读取所有 k 长度的字符串,将它们转换为整数表示,并将它们保存在 hash-map 中。

以下哪项会提供更好的运行时间结果?

第一个选项:

  1. 将整行转换为整数表示
  2. 在 k 长度窗口中遍历该行并读取数据

第二个选项:

  1. 在 k 长度窗口中遍历字符串行
  2. 对于每个子字符串 - 将其转换为整数表示

我认为第一个选项更好,但我想确定

【问题讨论】:

  • 用 System.currentTimeMillis() 测试它
  • 如何将行转换为“整数表示”?
  • 只有四个字母,所以每个字母都有二进制数 (00/01/10/11)

标签: java string complexity-theory


【解决方案1】:

确定的最佳方法是亲自验证。实现您的选项并编写测试用例来测量具有大量输入的性能将使您能够找到更好的选项。

【讨论】:

    【解决方案2】:

    让您的算法更高效的更好方法是重用以保存计算。对于字符串S=S[0]S[1]S[2]...S[n-1],你想获取每个k长度子字符串的所有整数值,更好的方法是重用。也就是说,如果我们已经知道 S[0]S[1]...S[k-1] 的整数值,假设它是 V1,那么你要计算S[1]S[2]...S[k],这是一种有效的取值方法V2=(V1-10^k*(S[0]-'0'))*10 + (S[k]-'0').

    当然,你也可以优化 I/O 操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-09
      • 1970-01-01
      • 2019-11-26
      • 1970-01-01
      • 2015-01-26
      相关资源
      最近更新 更多