最適化
はじめに この記事では、データ構造の概要について説明いたします。 今後は色々なデータ構造について紹介していく予定です。 また、この記事の内容をまとめた動画をYoutubeに投稿しております。 よければそちらも確認してみてください。 youtu.be 目次 前提…
概要 この記事では「オーダー記法」と「計算量の比較」について説明します。 また、記事の内容は動画でも紹介していますので、よければ確認してください。 youtu.be オーダー記法とは オーダー記法は計算量を数学的に記述する方法です。 まずは具体例から紹…
概要 ここでのオーダー記法は、アルゴリズムの性能(計算量)を評価するために使うものとします。 特に、あるアルゴリズムで問題を解く(計算する)際にかかる時間などの性能を表現できます。 ここからは、次のキーワードがでてきます。 もしまだご存知ない…
概要 二分探索と線形探索は、リスト探索という問題を解く方法(アルゴリズム)の一種。 リスト探索という問題は、基本的で理解しやすい問題です。 そのため、アルゴリズムの重要性を学ぶのに最適だと思います。 プログラマーでもアルゴリズムを意識する機会…
目次 フィボナッチ数列 ビネの公式 計算誤差について 計算の工夫 最終的な計算時間 サンプルコード 1. フィボナッチ数列 フィボナッチ数列は、イタリアの数学者レオナルド・フィボナッチの名前をとって名付けられた数列です。 数列の決まりは、「ある項は、1…
目次 この記事の目的 フィボナッチ数列 再帰で実装 ループで実装 計算時間の違い まとめ 1. この記事の目的 プログラミング経験者って、なんだかんだでフィボナッチ数列を実装したことがありますよね。 みなさんはどのように実装しましたか?覚えてらっしゃ…
目次 この記事の目的 ソースコードを準備する Dockerコンテナ上でコンパイルと実行 複数バージョンのJDKで実行 まとめ 1. この記事の目的 同じソースコードを複数バージョンのJDKで実行する方法を紹介します。 これができると、JDKごとにパフォーマンス測定…
目次 この記事の目的 文字列連結の2種類の仕方 パフォーマンスを比較する 10万回ではなく1000回であれば 結論 1. この記事の目的 Javaで文字列を連結する際は、StringとStringBuilderのどちらを使えばいいのかを考えたいと思います。 String と StringBuild…
目次 この記事の目的 String Constant Pool String#intern String#intern の実装を追う まとめ 1. この記事の目的 Javaで文字列同士の比較(等しいか判定)したい時は、 equals メソッドを使いましょう。 とは初心者に最初に教えるべき1つの教訓になってい…
結局なにをしたら最適化されるの 1. マテリアルを節約しましょう2. マップなどの大きくて動かないオブジェクトは Static フラグをたてましょう やってみて上手くいかない場合は、記事の続きを読んでみてください。