挑战如何做到这一点?
对以下内容应用基数排序:
A = {cat,bat,cow,sit,may,why}
答案 0 :(得分:1)
要执行基数排序,必须首先了解每个阶段的预期结果。
开始进行基数排序时,将按以下方式分配元素:
{cat,bat,cow,sit,may,why}
在第一次迭代中,我们将自上而下,并根据最后一个字母的字母顺序进行排序。这将导致:
{cat,bat,sit,cow,may,why}
在下一次迭代中,我们将自上而下,并根据倒数第二个字母的字母顺序进行排序。这将导致:
{cat,bat,may,why,sit,cow}
最后,我们用第一个字母重复此方法。这将导致您对单词进行排序:
{bat,cat,cow,may,sit,why}
实施时,必须考虑要获取的数据。您是否保证每个字符串的长度始终相同?基数仅适用于所有长度都相同的集合。如果情况并非总是如此,则可以考虑允许程序向字符串添加字符,以使长度相等,并以适当的方式比较字符串。
此外,此基数排序的运行时将为O(L(n + k)),其中L表示字符串的长度,n表示必须排序的字符串数。 k代表您可以拥有的值范围。如果您的字符串仅使用字符“ A”至“ D”,则为4。假设您正在评估整个字母,则k将由26表示。
希望这可以帮助您更好地了解基数排序。不过,如果您可以自由使用任何算法,我建议您使用所用语言内置的任何字母排序算法。