【发布时间】:2016-04-16 18:45:40
【问题描述】:
这是我遇到的一个面试问题。
输入:一串字符(ASCII),可以是一个句子。可以重复。 输出:按 ASCII 值排序
预期复杂度:线性时间和恒定附加空间
我的想法是做一种桶排序,你有一个大小为 256 的数组,然后使用它,但如果你有重复,那么如何处理呢?这会被认为是恒定空间吗?我猜是因为你只使用了 256 大小的数组,而且它不会随着输入的大小而增长。
不想要特定代码,因为我想自己这样做,但任何提示都会有所帮助!
【问题讨论】:
-
想想数组的值应该是多少。 (而且你只需要 ASCII 的大小为 128 ......)
-
哦,好的,我明白了。索引位置是字符,值是计数。谢谢!
-
这将是计数排序。 128 大小数组的线性时间。
标签: arrays string algorithm sorting