如何对存储为字符串且大小甚至大于 long long int 的数字数组进行排序?

问题描述 投票:0回答:1

为了对数组进行排序,我们不能使用整数解析,因为大小非常大。

例如 String[] arr = new String[]{"545434548549387551787458475822","555434548549387551787458475822","74852048754851148574895798474385739547385743 59287485284574"};

java algorithm sorting data-structures
1个回答
0
投票

既然你提到了“整数”而不是小数,你可以分三步完成:

  1. 确保所有字符串仅包含数字。删除空格等
  2. 确保所有字符串的长度相同。如果不是,请在前面添加正确数量的零。例如,如果最大字符串的长度为 10,并且您有一个字符串为
    99
    ,则将其设为
    0000000099
  3. 在此阶段,字符串已准备好进行比较。简单地,像对任何字符串数组一样对数组进行排序。

如果您的数组包含小数,则必须将上述算法扩展为:

  1. 将小数点定位在所有字符串中的特定位置,例如 11。您必须通过分析所有字符串来选择位置。
  2. 同样,最后,字符串的长度应该相同。因此,所有字符串中小数点后的位数也应该相同。但这一次,零在末尾被填充。
© www.soinside.com 2019 - 2024. All rights reserved.