2016-11-01 7 views
0

私はjavaの初心者であり、docs.oracle.comのさまざまなメソッドについて学んでいますが、奇妙なことに、そこに記述されているメソッドの時間的複雑さは言及されていませんでした。このページのhttps://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#get(int)
"get()"メソッドについての情報はありますが、複雑さに関する情報はありません!私は、複雑さに関する情報をどこに見つけるかを尋ねる適切な場所を見つけることができません。たぶん、cplusplus.comのような情報がありますが、わかりません。私はネットを検索し、失敗しました。これは愚かな質問であれば、私を許してください。そのページの最上部にどこでJavaメソッドの時間複雑さを見つけるのですか?

+4

"size、isEmpty、get、set、iterator、およびlistIteratorオペレーションは一定時間で実行されます。addオペレーションは償却された一定時間で実行されます。つまり、n個の要素を追加するにはO(n)他の操作は線形時間で実行されます(大まかに言えば)。 "クラスの上部にある説明を読んでみてください。 –

+0

メソッド実装の複雑さを時間を掛ける必要はないことに注意してください。非常に広く使用されているいくつかのクラス以外では、通常それらを見つけることはありません。 –

+0

申し訳ありません私はそれに気付かなかった。しかし、まだページの上部にあるすべてのメソッドの複雑さについて言及するのに十分なスペースがないようです。私の質問は、特定の方法についてすべてを読む特定の場所はありますか? – agassaa

答えて

3

それは大きさ、のisEmpty、取得、セット、イテレータ、および反復子の操作が一定時間で実行されます

言います。加算演算は償却された一定時間で実行されます。つまり、n個の要素を追加するにはO(n)時間が必要です。他のすべての操作は、線形時間(大まかに言えば)で実行されます。 Constant FactorはLinkedList実装の場合と比較して低くなります。

+0

ですから、特定の方法について具体的なことを知るために、ページ全体を読む必要がありますか? – agassaa

+0

@agassaa:恐らくそれは常に最上位に位置しています。あるいは、他の言語/ライブラリ用のドキュメントを読む場合、複雑さを検索する簡単な方法は、「線形」、「定数」、「二次式」の出現を検索することです。 – Ishamael

+0

提案をありがとう:) btw、あなたはこの質問を削除する必要があると思いますか?生産性を促進しないかもしれないので? – agassaa

関連する問題