0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

挿入ソート

Posted at

はじめに

今まで標準ライブラリに実装されているソートを利用していたが、アルゴリズムをイチから勉強しなおそうと思った。

挿入ソートとは

1つずつ数字を取り出して、それをその時点ですでにソートされている並びの適切な位置に挿入するソート手法。

具体例と計算量

tmp.jpg

ソースコード

数字配列を受け取って、並び替えて返す関数を作成。

vector<long> insertSort(vector<long> v)
{
	long len = v.size();

	for (long i = 1; i < len; i++)
	{
		// 挿入しようとしている数字が比較対象より小さい限り入れ替え
		for (long j = i; j > 0; j--)
		{
			if (v[j] < v[j - 1])
			{
				long tmp = v[j];
				v[j] = v[j - 1];
				v[j - 1] = tmp;
			}
			else
			{
				break;
			}
		}
	}
	return v;
}

今後に向けてメモ

  • 上述のコードだとvector<long>のソートしかできないため、string,vector<int>とか配列型なら何でもソートできるようにしたい(Template使うのかな?)
  • 受け取った配列をソートして返すのではなく、実際のアドレスにアクセスして参照渡しをしたほうが無駄にメモリを使わない気がする
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?