gpt4 book ai didi

arrays - 对字符数组进行排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:00:24 24 4
gpt4 key购买 nike

这是我遇到的一道面试题。

输入:一串字符(ASCII),可以是一个句子。可以重复。输出:按 ASCII 值排序

预期复杂度:线性时间和常量附加空间

我的想法是做一种桶排序,你有一个大小为 256 的数组,然后使用它,但如果你有重复项,那么如何处理呢?这会被认为是恒定空间吗?我猜这是因为您只会使用 256 大小的数组,并且它不会随着输入的大小而增长。

不需要特定的代码,因为我想自己做,但任何提示都会有帮助!

最佳答案

这个问题的解决方案是counting sort .

您将拥有一个大小为 128 的数组,并且所有值都初始化为 0。使用字符的 ascii 值对数组进行索引,然后递增数组值。

仅通过遍历大小为 128 的数组即可生成排序序列,如果数组 [i] 非零且该值给出要打印的字符的频率,则仅打印 ascii 值 i 的字符。

你是对的,这是恒定大小 O(1) 和线性时间 O(N) 算法。

关于arrays - 对字符数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36668234/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com