Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 在c+中对大量大小(10^8)的字符串(10^8)进行排序+; 谁能告诉我如何在C++中对大尺寸的大字符串排序。我无法建立任何逻辑。请帮助。_String_Sorting - Fatal编程技术网

String 在c+中对大量大小(10^8)的字符串(10^8)进行排序+; 谁能告诉我如何在C++中对大尺寸的大字符串排序。我无法建立任何逻辑。请帮助。

String 在c+中对大量大小(10^8)的字符串(10^8)进行排序+; 谁能告诉我如何在C++中对大尺寸的大字符串排序。我无法建立任何逻辑。请帮助。,string,sorting,String,Sorting,在这种情况下,对字符串指针进行排序可能会很好。您并没有指定很多有助于提供良好解决方案的信息。如果字符串位于磁盘上,则解决方案可能与字符串位于内存中时不同。何时以及是否移动字符串可能取决于字符串的位置以及访问要求 合并排序算法往往适用于大型集合。对于较大的密钥大小,对密钥前缀进行排序可以获得更容易/更快排序的集合。从a开始对所有键进行排序比所有键都容易得多。如果使用的是具有相同前缀的集,则可以跳过前缀并在键的下一部分排序。当所有前缀集的大小均为1时,即完成此操作 你试过什么?你能对少量的短字符串进

在这种情况下,对字符串指针进行排序可能会很好。您并没有指定很多有助于提供良好解决方案的信息。如果字符串位于磁盘上,则解决方案可能与字符串位于内存中时不同。何时以及是否移动字符串可能取决于字符串的位置以及访问要求


合并排序算法往往适用于大型集合。对于较大的密钥大小,对密钥前缀进行排序可以获得更容易/更快排序的集合。从
a
开始对所有键进行排序比所有键都容易得多。如果使用的是具有相同前缀的集,则可以跳过前缀并在键的下一部分排序。当所有前缀集的大小均为1时,即完成此操作

你试过什么?你能对少量的短字符串进行排序吗?你用的是什么阿尔戈利斯?当你试图在大的大字符串上使用相同的算法时,你会怎么做?实际上我在尝试计算BWT(BurraveWelver变换),但是它需要一个10×8×10×8的矩阵,我不能用C++来构建。内存需求可能会迫使你去磁盘。这将大大降低您的排序速度。排序前缀可能会加快速度,因为您不需要在每次传递时读取整个条目。