2017-08-14 2 views
0

配列の最初の要素(4000番目ではなく)から読み取ったときに速度差はありますか?配列内の他の要素についても同じです。配列の最初の要素、または4000番目の要素を読み取る方が速いのですか?

ほとんどがC++について質問していますが、どの言語も問題ありません。

配列に関しては、整数の配列になります。

+0

どの言語/プラットフォームですか?それは依存している。 – Julian

+2

それは(多くのものに)依存します。 – user3528438

+0

テストアプリケーションを作成し、使用している言語に関係なく、それを自分でベンチマークします。結果はあなたに何を伝えますか? –

答えて

4

特に配列内の要素を呼び出していて、取得する要素の配列内の正確な位置を知っている場合は、速度に差はありません。しかし、ループが関与している場合、または特定の値のアレイを検索する機能の種類がある場合は、速度に影響を与える可能性があります。

2

同じである必要があります。あなたが探している要素のインデックスを知っていれば、大きな配列をループする際には気にする必要はありません。

おそらく言語に依存しますが、それはJavaやC/C++でも当てはまりますが、残りの部分は本当に言い訳がありません。

さて、私はあなたがC++について話しているのを見て、あなたはそれが同じであることを確かめることができます。

1

C++ではまったく同じです。そのため、配列はその事実に依存する多くのことをアルゴリズムに行うための優れた構造です。明示的にアドレス指定されたメモリで何かにアクセス

1

はO(1)

配列要素を配列の開始位置を取り、次いで、オフセットを加算することによって行われるアクセスしています。 [256] = 0x000001f0 + 0x00000100

ARR [0] = 0x000001f0 + 0x00000000の

アクセスARR

egif ARR = 0x000001f0

アクセス[免責事項:OS及び仮想化によって変化し得るとそして... - それについて心配しないでください]

関連する問題