-1
アレイにアクセスする瞬間にアレイにアクセスする時間を2倍に減らすにはどうすればよいですか?ユーザーが入力したシーケンス番号の中で最大の番号を見つけるにはアレイのアクセス数を最小限に抑えるには
int i=0;
int max = -1;
int a_i = -1;
for (i=0; i<length; i++)
{
a_i = array(a,i);
if (a_i > max)
{
max = a_i;
}
return max;
完全なコードon pastebin
任意のヘルプ高く評価しました。
コードすることができ、O(n)との複雑さである、一度だけ、配列の各要素にアクセスするように思われます。配列がソートされている場合は、バイナリ検索を使用して複雑さをO(logn)に減らすことができます。 –
@AdamLiss:ソートされている場合、コードは値の配列の中で最大値を見つけているので、O(1)です。しかし、これはOPが求めていることではありません。正直言って、OPがどのような問題を抱えているのかわかりません(欠落した '} 'を考慮して)コードを見れば、配列へのアクセスは1回しかないと思います。 – Skizz
あなたはブレースを見逃しているようですか? –