• 検索結果がありません。

アルゴリズムとデータ構造 補足資料 7-2 「単純挿入ソート insort.c 」

N/A
N/A
Protected

Academic year: 2021

シェア "アルゴリズムとデータ構造 補足資料 7-2 「単純挿入ソート insort.c 」"

Copied!
26
0
0

読み込み中.... (全文を見る)

全文

(1)

アルゴリズムとデータ構造 補足資料 7-2

「単純挿入ソート insort.c 」

横浜国立大学

理工学部

数物・電子情報系学科

富井尚志

(2)

解の方針:未整列のエリアの要素1個を、整列済みのエリアのどこに「挿入」すればよいか探す

8

件のデータ

整列済みのエリアと未整列のエリアに分けて考える。

65 90 85 70 86 92 63 85

整列済み 未整列

(3)

解の方針:未整列のエリアの要素1個を、整列済みのエリアのどこに「挿入」すればよいか探す

8

件のデータ

整列済みのエリアと未整列のエリアに分けて考える。

65 90 85 70 86 92 63 85

整列済み 未整列

これは、整列済エリアのどこに入る?

(4)

解の方針:未整列のエリアの要素1個を、整列済みのエリアのどこに「挿入」すればよいか探す

8

件のデータ

整列済みのエリアと未整列のエリアに分けて考える。

65 90 85 70 86 92 63 85

整列済み 未整列

(5)

解の方針:未整列のエリアの要素1個を、整列済みのエリアのどこに「挿入」すればよいか探す

8

件のデータ

整列済みのエリアと未整列のエリアに分けて考える。

65 90 85 70 86 92 63 85

整列済み 未整列

これは、整列済エリアのどこに入る?

(6)

解の方針:未整列のエリアの要素1個を、整列済みのエリアのどこに「挿入」すればよいか探す

8

件のデータ

整列済みのエリアと未整列のエリアに分けて考える。

65 90 85 70 86 92 63 85

整列済み 未整列

(7)

解の方針:未整列のエリアの要素1個を、整列済みのエリアのどこに「挿入」すればよいか探す

8

件のデータ

整列済みのエリアと未整列のエリアに分けて考える。

65 90

85 70 86 92 63 85

整列済み 未整列

(8)

解の方針:未整列のエリアの要素1個を、整列済みのエリアのどこに「挿入」すればよいか探す

8

件のデータ

整列済みのエリアと未整列のエリアに分けて考える。

65 85 90 70 86 92 63 85

整列済み 未整列

(9)

解の方針:未整列のエリアの要素1個を、整列済みのエリアのどこに「挿入」すればよいか探す

8

件のデータ

整列済みのエリアと未整列のエリアに分けて考える。

65 85 90 70 86 92 63 85

整列済み 未整列

これは、整列済エリアのどこに入る?

(10)

解の方針:未整列のエリアの要素1個を、整列済みのエリアのどこに「挿入」すればよいか探す

8

件のデータ

整列済みのエリアと未整列のエリアに分けて考える。

65 85 90 70 86 92 63 85

整列済み 未整列

これは、整列済エリアのどこに入る?

(11)

解の方針:未整列のエリアの要素1個を、整列済みのエリアのどこに「挿入」すればよいか探す

8

件のデータ

整列済みのエリアと未整列のエリアに分けて考える。

65 85 90

70 86 92 63 85

整列済み 未整列

これは、整列済エリアのどこに入る?

(12)

解の方針:未整列のエリアの要素1個を、整列済みのエリアのどこに「挿入」すればよいか探す

8

件のデータ

整列済みのエリアと未整列のエリアに分けて考える。

65 70 85 90 86 92 63 85

整列済み 未整列

(13)

解の方針:未整列のエリアの要素1個を、整列済みのエリアのどこに「挿入」すればよいか探す

8

件のデータ

整列済みのエリアと未整列のエリアに分けて考える。

65 70 85 90 86 92 63 85

整列済み 未整列

これは、整列済エリアのどこに入る?

(14)

解の方針:未整列のエリアの要素1個を、整列済みのエリアのどこに「挿入」すればよいか探す

8

件のデータ

整列済みのエリアと未整列のエリアに分けて考える。

65 70 85 90

86 92 63 85

整列済み 未整列

これは、整列済エリアのどこに入る?

(15)

解の方針:未整列のエリアの要素1個を、整列済みのエリアのどこに「挿入」すればよいか探す

8

件のデータ

整列済みのエリアと未整列のエリアに分けて考える。

65 70 85 86 90 92 63 85

整列済み 未整列

(16)

解の方針:未整列のエリアの要素1個を、整列済みのエリアのどこに「挿入」すればよいか探す

8

件のデータ

整列済みのエリアと未整列のエリアに分けて考える。

65 70 85 86 90 92 63 85

整列済み 未整列

これは、整列済エリアのどこに入る?

(17)

解の方針:未整列のエリアの要素1個を、整列済みのエリアのどこに「挿入」すればよいか探す

8

件のデータ

整列済みのエリアと未整列のエリアに分けて考える。

65 70 85 86 90 92 63 85

整列済み 未整列

(18)

解の方針:未整列のエリアの要素1個を、整列済みのエリアのどこに「挿入」すればよいか探す

8

件のデータ

整列済みのエリアと未整列のエリアに分けて考える。

65 70 85 86 90 92 63 85

整列済み 未整列

これは、整列済エリアのどこに入る?

(19)

解の方針:未整列のエリアの要素1個を、整列済みのエリアのどこに「挿入」すればよいか探す

8

件のデータ

整列済みのエリアと未整列のエリアに分けて考える。

65 70 85 86 90 92

63 85

整列済み 未整列

これは、整列済エリアのどこに入る?

(20)

解の方針:未整列のエリアの要素1個を、整列済みのエリアのどこに「挿入」すればよいか探す

8

件のデータ

整列済みのエリアと未整列のエリアに分けて考える。

65 70 85 86 90 92

63 85

整列済み 未整列

(21)

解の方針:未整列のエリアの要素1個を、整列済みのエリアのどこに「挿入」すればよいか探す

8

件のデータ

整列済みのエリアと未整列のエリアに分けて考える。

65 70 85 86 90 92

63 85

整列済み 未整列

これは、整列済エリアのどこに入る?

(22)

解の方針:未整列のエリアの要素1個を、整列済みのエリアのどこに「挿入」すればよいか探す

8

件のデータ

整列済みのエリアと未整列のエリアに分けて考える。

65 90

85

70 86 92

63 85

整列済み 未整列

これは、整列済エリアのどこに入る?

(23)

解の方針:未整列のエリアの要素1個を、整列済みのエリアのどこに「挿入」すればよいか探す

8

件のデータ

整列済みのエリアと未整列のエリアに分けて考える。

65 70 85 86 90 92

63 85

整列済み

(24)

未整列

解の方針:未整列のエリアの要素1個を、整列済みのエリアのどこに「挿入」すればよいか探す

n

件のデータ

整列済みのエリアと未整列のエリアに分けて考える。

整列済

(25)

未整列

解の方針:未整列のエリアの要素1個を、整列済みのエリアのどこに「挿入」すればよいか探す

n

件のデータ

整列済みのエリアと未整列のエリアに分けて考える。

整列済

i

番目の要素

挿入先を決めるのに:

1

i

回の比較

挿入先を空けるのに:

0

i-1

回のデータ移動

i

番目の要素を整列済みにするためのコスト

繰り返し回数:

n-1

(26)

解の方針:未整列のエリアの要素1個を、整列済みのエリアのどこに「挿入」すればよいか探す

n

件のデータ

整列済みのエリアと未整列のエリアに分けて考える。

未整列

未整列

整列済

未整列 整列済

未整列 整列済

未整列 整列済

整列済

未整列

整列済

n-1

回の繰返し

それぞれ、およそ

i/2

回程度の比較とデータ移動

O(n

2

)

参照

関連したドキュメント