未来電子テクノロジーでインターンをしているto-fu16です。
今回は、アルゴリズムの中でも基礎的な事柄であるソートアルゴリズムについて調べてみました。
##アルゴリズムとは
アルゴリズムとは、何らかの問題を解決するための方法や手順のことです。
プログラミングを学習するには、プログラミング言語の文法を理解するのに加えて、アルゴリズムを学ぶ必要があります。
同じ処理でも、アルゴリズムの違いによってプログラムの処理速度は大きく変わります。
計算量の少ないアルゴリズムほどよいアルゴリズムとされています。
##ソートアルゴリズムとは
データベースのデータを一定の規則に従って並べ替える(ソートする)ためのアルゴリズムをソートアルゴリズムと言います。
ソートアルゴリズムにはたくさんの種類がありますが、最も一般的な3種類のソートアルゴリズムについて解説します。
###バブルソート
隣り合う要素の大小を比較し、入れ替えを繰り返すことによって整列します。
もっとも単純なアルゴリズムですが、効率は悪いです。
###クイックソート
基準値(ピボット)を1つ決め、データを基準値以上と基準値未満に分けるという処理を繰り返すことによって整列します。
一般的に最も高速だと言われているアルゴリズムですが、データの並びや数によっては必ずしも早いわけではありません。
###マージソート
データを分割し、その各々でソートを行った後に併合(マージ)する方法です。
処理時間がデータの並びの影響を受けにくく、最悪計算量がクイックソートより少ないのが特徴です。
##おわりに
プログラミング初心者であるため、内容に誤りがあるかもしれません。
もし、誤りがあれば修正するのでどんどん指摘してください
##参考
https://qiita.com/hiso/items/5c36f50c7de61fe870a2
https://moneyforward.com/engineers_blog/2016/02/02/sort-algorithm/