我是一个入门的web开发人员,作为一项测试任务,我得到了以下内容:
给出了一个无序的打印ASCII字符数组。用您自己的单词(没有代码或伪代码)描述一种排序算法,该算法允许您按照线性时间按字母顺序对这个数组进行排序。在算法的每一步都需要描述动作。这种排序算法的稳定版本有可能吗?
我不太擅长算法,因为我刚刚开始学习,所以我不知道如何处理这个任务。
谢谢你的帮助。
发布于 2022-11-09 17:26:09
印刷ASCII字符
我想它们指的是ASCII字符,它的ASCII代码在32-126之间,所以95个字符。
用你自己的话来描述
对于每个相关的ASCII代码,计算输入中该字符的数量。这样做的想法是,您可以通过输入一次完成此操作:对于每个遇到的字符,增加相应的计数器。
按照ASCII代码的顺序迭代上述(95)计数器,并输出相应字符的多次。因此,如果计数器为零,不要输出字符,如果计数器为3,则输出该字符三次。
这种排序算法的稳定版本有可能吗?
是。只有当输入中的每个字符都伴随着一些相关数据(有效载荷)时,这才是相关的。在这种情况下,我们不仅应该按照ASCII代码维护一个计数器,还应该在与该ASCII代码相关联的数组中收集相关的有效载荷。
有关更多信息,请参阅在维基百科上计数排序
发布于 2022-11-22 18:08:40
为此,通过计数来进行排序:
是的,这种排序算法的稳定变体是可能的,因为具有相同值的元素在输出数组中的顺序与输入中的顺序相同。
https://stackoverflow.com/questions/74373748
复制相似问题