縮小する動的配列を設計する場合、最も使用頻度の高いインデックスを追跡する方法と、そのインデックスの保持オブジェクトが削除されたときに、新しく最も使用頻度の高い index を見つけます。
現時点では、aa を単純int last_used
にして、この変数を維持するコストを に請求することを考えることができます。func_delete
これは、最高のものを削除するかどうかを確認する必要があり、削除する場合は、null 以外を探して小さい値をそれぞれ確認する必要があります。(配列は常に null 初期化されます)
if(last_index == deleted_index){
while(last_index >0 && array[--last_index] != NULL)
// if the array is now only half full, I realloc
}
他にスマートな方法はありますか?