c - 将排序后的未排序的连续字符串数组写入文件

标签 c arrays algorithm performance sorting

我得到了一个字符串数组,其中包含无序的连续数字(范围从 0 到 n)
例如 - [7a, 1b, 2c, 0d, 6e, 5f, 3g, 4h] 我想按顺序将数字写入文件
在例子之后:
0d
1b
2c
3g
4h
5f
6e
7a

我正试图找到一种既快速又不占用太多空间的方法 我找到了一种可以在 O(n) 空间复杂度和 O(n) 性能下做到这一点的方法 (我创建了一个包含 n 个单元格的数组,并将每个数字插入到他的单元格编号中)
arr[单元格] = 单元格
但我正在寻找更好的方法,如果您能提供帮助,我将不胜感激。

谢谢

最佳答案

因为数字是连续的,所以根本不需要数组。

您只需要找到数组中的最小最大 元素。一旦知道了 minmax,就可以将范围内的数字写入文件。这仍然是 O(n) 时间,但没有额外的空间复杂度。如果 min 始终为 0,那么您只需要数组中的最大数字即可。

关于c - 将排序后的未排序的连续字符串数组写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30874831/

相关文章:

c - 具有两个定义操作的随机访问循环数据结构

algorithm - 如何向该示例添加并行计算?

c - 替换 C 中字符串中所有出现的子字符串

java - 使用递归查找数组中的最小数

arrays - 检查数组是否包含某些东西 - Swift 4

php - 将 foreach 作为数组提交到 MySQL

c - fft2 (matlab) 和 fftw (C) 的不同结果

c - 使用 fork() 的多客户端服务器

C 如何在没有数组的情况下将标点符号后的字符大写?

algorithm - 动态规划的应用