-5

関数が必要です(実装なし、基本的なアイデアのみ)

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

新しい要素( val )が格納されるインデックスを返します。並べ替えアルゴリズムはオプションですが、新しい要素が格納される位置が必要です。

残念ながらSTDは使えません。要素は重複する可能性があります。

編集:

現在の状況では、新しい要素を最後の場所に追加してから、並べ替えアルゴリズムを実行します。そのため、並べ替え中にインデックスが失われます。

4

1 に答える 1

1

配列が既にソートされている場合は、挿入ソートを使用します。挿入ソートは、複雑さを軽減して新しいアイテムに適切な場所を提供します。

それ以外の場合は、配列内の新しいアイテムに対してバイナリ検索を使用して、配列内の適切な場所を見つけることができます。その後、他のすべての要素をシフトして、新しいアイテムの場所を作ります。

于 2013-03-06T12:29:30.690 に答える