独学のコンピューター プログラマーとして、特定の操作の O() 値を見積もるのに途方に暮れることがよくあります。ええ、主要な並べ替えや検索など、重要なもののほとんどは頭のてっぺんから知っていますが、何か新しいことが起こったときにそれを計算する方法はわかりません。その方法を説明している優れた Web サイトまたはテキストはありますか? コンピューター科学者が何と呼んでいるのかさえ知らないので、ググることはできません。
5 に答える
これはBig O Notationと呼ばれ、 Computational Complexity Theoryで使用されます。
ウィキペディアの記事は、ページの下部にある参考文献と同様に、かなり良い出発点です.
アルゴリズム入門は、ほとんどの大学で使用される標準テキストです。私はそれを使用しており、注文分析に関するこれらの章をお勧めできます。ただし、Tim Howland's answer の記事から始めます。
このトピックを本当に学びたい場合は、おそらく標準的な理論/アルゴリズムの教科書が必要です。複雑さの分析を実際に教えてくれるウェブサイトは知りません (「複雑さ」または「時間の複雑さ」は、これらの O() 値の呼び方です。「アルゴリズムの分析」または「への導入」をグーグルで検索することもできます)。アルゴリズム」など)。
しかしその前に、無料のオプションがあります。MIT の Erik Demaine と Charles Leiserson によって提供されたコースからのスライドが無料で見栄えがします。私は間違いなくそれらを読んで、それがあなたに役立つかどうかを確認しようとします. 彼らはここにいます。
さて、教科書:
教科書の古典的な選択は、Cormen らの本Introduction to Algorithmsです (ここで購入できる安価なバージョンがあるかもしれません。オンラインで無料の (おそらく違法な) バージョンを見たことを覚えていますが、どこにあったかは覚えていません)。
IMO より楽しく読むことができ、より良い選択である、より最近のモダンなスタイルの本は、Kleinberg と Tardos のAlgorithm Designです。
ここに情報を含むいくつかのWebサイトがあります(引用符なしで「アルゴリズム分析の講義ノート」をグーグルで検索してこれらを取得しました):
上記はコンピューター科学の理論家によって書かれています。そのため、プログラマーやその他の実務家は、異なる意見を持っている可能性があります。
これはアルゴリズム分析と呼ばれ、それ自体が科学です。ここでいくつかの本を見てください
リンクをクリック すると、ユーザー ID とパスワードが必要なロシア語のサイトに移動します。正当な間違い、または 荒らし?ポール・トンブリン
このサイトはブルガリア語で書かれており、リンク先のファイルのリストにアクセスして一部をダウンロードするのにパスワードは必要ありません。もちろん、ブルガリア国外からの IP へのアクセス制限がある場合を除きますが、これは本当にわかりません。
すみません、コメントの仕方がわかりません。