アルゴリズム

Java

【Java】マージソートを実装してみる

今回はマージソートを実装してみます。マージソートは平均計算量、最良計算量、最悪計算量がすべて(n logn)と安定したソートアルゴリズムとして知られています。考え方は、「配列の全ての要素を最小限まで分解し、その後要素の大小を比較して結合する」です。実装したコードはこちらになります。 import java.ut...
2023.03.06
Java

【Java】クイックソートを実装してみる

今回はクイックソートを実装してみたいと思います。クイックソートは考え方は難しくないとよく言いますが、僕は頭がこんがらがってめちゃくちゃ悩みました。考え方は、「基準の数字を選び、それより大きい数字と小さい数字を探し、見つかったら位置を交換する。これを繰り返し、基準の数字よりも大きな数字グループと小さな数字グループに分け...
2023.03.06
Java

【Java】バブルソートを実装してみる

今回はバブルソートを実装してみます。バブルソートを検索すると様々な説明がありますが、自分は馬鹿なので全然理解できませんでした。なんとか自分なりにコードを書き理解することができました。バブルソートを自分なりに解釈すると「隣の数字同士を比較して、小さい(大きい)数字を左(右)に送り固定していく」といった感じに至りました。...
2023.03.06