首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按字母顺序排序ASCII字符的算法描述

按字母顺序排序ASCII字符的算法描述
EN

Stack Overflow用户
提问于 2022-11-09 10:56:58
回答 2查看 93关注 0票数 0

我是一个入门的web开发人员,作为一项测试任务,我得到了以下内容:

给出了一个无序的打印ASCII字符数组。用您自己的单词(没有代码或伪代码)描述一种排序算法,该算法允许您按照线性时间按字母顺序对这个数组进行排序。在算法的每一步都需要描述动作。这种排序算法的稳定版本有可能吗?

我不太擅长算法,因为我刚刚开始学习,所以我不知道如何处理这个任务。

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2022-11-09 17:26:09

印刷ASCII字符

我想它们指的是ASCII字符,它的ASCII代码在32-126之间,所以95个字符。

用你自己的话来描述

对于每个相关的ASCII代码,计算输入中该字符的数量。这样做的想法是,您可以通过输入一次完成此操作:对于每个遇到的字符,增加相应的计数器。

按照ASCII代码的顺序迭代上述(95)计数器,并输出相应字符的多次。因此,如果计数器为零,不要输出字符,如果计数器为3,则输出该字符三次。

这种排序算法的稳定版本有可能吗?

是。只有当输入中的每个字符都伴随着一些相关数据(有效载荷)时,这才是相关的。在这种情况下,我们不仅应该按照ASCII代码维护一个计数器,还应该在与该ASCII代码相关联的数组中收集相关的有效载荷。

有关更多信息,请参阅在维基百科上计数排序

票数 0
EN

Stack Overflow用户

发布于 2022-11-22 18:08:40

为此,通过计数来进行排序:

  1. 根据输入数组的长度创建一个数组,以记录索引中遇到的数字数,并将数字本身写入这些索引上的值。
  2. 在一次传递中,对于每个对应的数字(ASCII代码),计算在输入端出现多少个字符。
  3. 如果该数字发生不止一次,则计数器会将次数增加一次。
  4. 在65到90和97至122的范围内打印ASCII字母代码的次数是计算一次的次数。

是的,这种排序算法的稳定变体是可能的,因为具有相同值的元素在输出数组中的顺序与输入中的顺序相同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74373748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档