2013-03-06 27 views
-5

元素的索引我需要的功能(沒有實現,只是基本的想法)C/C++得到被添加到有序數組

int add(int * array, , const int len, const int val); 

它返回指數,其中的新元素(VAL)存儲。 排序算法是可選的,但我需要存儲新元素的位置。

不幸的是我不能使用STD。 元素可以有重複。

編輯:

目前的情況是,我添加新元素到最後一個景點,然後我跑的排序算法。因此索引在排序過程中丟失。

+0

因此,b搜索找到它所屬的位置,然後將其填入shift(如果需要),並返回索引。時間來寫一些代碼。 – WhozCraig 2013-03-06 11:25:21

+0

@WhozCraig你能在你的評論中改述你的第一句話嗎? – Rob 2013-03-06 11:34:45

+0

只是爲了清晰。你想要它被插入的索引,對嗎?你*添加*這個元素。正確嗎? *之前*返回的索引可能會在每次插入後失效。只有新插入的項目纔有效地被返回值索引。你還好嗎? – WhozCraig 2013-03-06 11:36:05

回答

1

如果您的Array已經排序,請使用插入排序。 插入排序將爲複雜性較低的新項目提供正確的位置。

其他 您可以對數組中的新項目使用二進制搜索來查找數組中的正確位置。 之後,轉移所有其他元素,使新的項目的地方。