【发布时间】:2013-02-21 03:55:36
【问题描述】:
我需要函数(没有实现,只是基本的想法)
int add(int * array, , const int len, const int val);
返回索引,新元素( val )存储在其中。 排序算法是可选的,但我需要存储新元素的位置。
很遗憾,我不能使用 STD。 元素可以有重复项。
编辑:
目前的情况是我将新元素添加到最后一个位置,然后运行排序算法。所以在排序过程中索引会丢失。
【问题讨论】:
-
所以 b-search 找到它所属的位置,然后在需要时将其填充到 shift 中,并返回您的索引。是时候写一些代码了。
-
@WhozCraig 你能改写你评论中的第一句话吗?
-
只是为了清楚起见。你想要它被插入的索引,对吧?您正在添加这个元素。正确的 ? prior 返回的索引可能在每次插入后失效。只有新插入的项目才被返回值有效索引。你同意吗?
-
插入后不排序。 with 插入排序。在现有数组上使用二进制搜索算法,找到新项目所属的位置。打个洞,(将所有东西向下移动一个槽),然后将项目放入。您放置它的位置是索引,它已经排序。
-
@WhozCraig 是的,有道理,谢谢。仍然不知道为什么我被否决了
标签: c++ c arrays sorting indexing