0

次のような着信int番号を格納する5つの配列があります。

int array1 = {1,6,..}
int array2 = {2,7,..}
.
.
int array5 = {5,10,..}

今、私がしなければならないことは、別の配列で次の番号を検索することです。

好き、

for(i = 0, i < array1.size ; i++){

int element = array1[0] ;

//here array2, array3, ..., array5 can have different size
search for array2 to find element+1
search for array3 to find element+2
.
.
search for array5 to find element+5
}

私が今していることは:

Run for loop for 0 to array2 size, to find element+1 (so for others)

ただし、かなり遅いです。誰かが私にそれをより速くする方法についていくつかのアイデアを与えることができますか(私は配列を他のデータ構造に変更することもできます)。

申し訳ありませんが、私が言及すべきことを尋ねている間、私は2つの間違いを犯します:

1) Arrays are sorted (incremental elements always).
2) Array elements are very few (2-3) so Binary Search will be expensive.
3) I have to perform the search for thousand times means when channel input pause, I have to perform search, then again channel start and I have to perform search ... so on.
4

1 に答える 1

4

配列がソートされている場合は、すべての要素をループ処理するのではなく、二分探索を使用して要素を見つけます。

于 2012-04-17T15:47:03.503 に答える