任何人都可以提供关于字符串数组的Bead Sort算法吗?

时间:2015-04-23 19:31:35

标签: algorithm sorting data-structures pseudocode

因为我无法在java上使用整数值中的示例对String数组进行编码。 请有人解释一下。 Java会更好。

1 个答案:

答案 0 :(得分:0)

根据Wikipedia article,算法只能对正整数列表进行排序,在最好的情况下需要额外的O(n ^ 2)空间。

如果要对带有珠子排序的字符串列表进行排序,则需要某种方法将这些字符串转换为正整数,以使数字的关系与字符串之间的关系完全匹配。因此,如果您有字符串“ABC”,“JKL”和“XYZ”,那么您为“XYZ”生成的数字必须大于您为“JKL”生成的数字,该数字必须大于“JKL”的数字。字符串“ABC”。

如果你的字符串都是四个字节长(或更短),那么这不是一件特别困难的事情。如果要对长整数进行排序,甚至是8个字节:您只需将字符串的每个字节映射到整数中的一个字节。所以“ABC”将成为:0x00414243

但是在一般情况下,如果您的字符串长度超过8个字节,那么提供该映射将比使用不同的排序算法更昂贵。好吧,除非你想使用一些特殊的BigInteger类。

即便如此,如果你试图对一个小阵列进行排序,那么O(n ^ 2)额外空间将成为一个交易杀手。对32,000个整数的数组进行排序需要4千兆字节的额外空间。

简而言之,根据您的描述,您要求做的事情是不合理的。