Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c/c++;获取要添加到排序数组中的元素的索引_C++_C_Arrays_Sorting_Indexing - Fatal编程技术网

C++ c/c++;获取要添加到排序数组中的元素的索引

C++ c/c++;获取要添加到排序数组中的元素的索引,c++,c,arrays,sorting,indexing,C++,C,Arrays,Sorting,Indexing,我需要功能(没有实现,只是基本想法) 返回索引,新元素(val)存储在该索引中。 排序算法是可选的,但我需要新元素的存储位置 很遗憾,我不能使用STD。 元素可以有重复项 编辑: 目前的情况是,我将新元素添加到最后一个点,然后运行排序算法。因此,索引在排序过程中丢失 如果数组已排序,则使用插入排序。 插入排序将以较低的复杂性为新项目提供正确的位置 否则 您可以对数组中的新项使用二进制搜索,以在数组中找到正确的位置。 在那次移动之后,所有其他元素都将成为新项目的位置。因此,b-搜索以找到它所属的位

我需要功能(没有实现,只是基本想法)

返回索引,新元素(val)存储在该索引中。 排序算法是可选的,但我需要新元素的存储位置

很遗憾,我不能使用STD。 元素可以有重复项

编辑:


目前的情况是,我将新元素添加到最后一个点,然后运行排序算法。因此,索引在排序过程中丢失

如果数组已排序,则使用插入排序。 插入排序将以较低的复杂性为新项目提供正确的位置

否则 您可以对数组中的新项使用二进制搜索,以在数组中找到正确的位置。
在那次移动之后,所有其他元素都将成为新项目的位置。

因此,b-搜索以找到它所属的位置,然后在需要时将其填充在shift中,并返回索引。是时候写些代码了。@WhozCraig,你能把你评论中的第一句话改一下吗?只是为了清楚起见。你想要它被插入的索引,对吗?您正在添加此元素。对的每次插入后,先前返回的索引可能会失效。返回值仅对新插入的项进行有效索引。你同意吗?插入后不要排序。按插入进行排序。对现有数组使用二进制搜索算法,找到新项所属的位置。打一个洞,(把所有东西移到一个槽里),然后把东西放进去。您删除它的位置是索引,它已经被排序。@WhozCraig是的,有意义,谢谢。还是不知道为什么我会被否决
int add(int * array, , const int len, const int val);