【发布时间】:2010-06-07 12:09:59
【问题描述】:
我想编写一段代码,用于将数字插入到已排序数组中的适当位置(即插入后数组仍应保持排序状态)
我的数据结构不允许重复。
我打算做这样的事情:
- 使用二分搜索找到我应该放置此元素的正确索引
- 为此元素创建空间,方法是将该索引中的所有元素向下移动。
- 把这个元素放在那里。
还有其他更好的方法吗?
【问题讨论】:
-
你知道什么是自平衡二叉树吗?
-
如果您想使用普通数组,除了您描述的解决方案之外,我看不到其他解决方案。
-
问题是我被限制使用连续内存。我不明白我怎么能用树做到这一点。有办法吗?
-
您始终可以将二叉树表示为数组,就像@tafa 所说的那样——尽管如果树不完全平衡(即,如果右分支比左分支更深,则效率不是 100%)姐姐,你的数组中会有空槽)。
标签: c data-structures