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

静的データ/ 動的データ

N/A
N/A
Protected

Academic year: 2021

シェア "静的データ/ 動的データ"

Copied!
14
0
0

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

全文

(1)

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

「 2 分探索木」

横浜国立大学 理工学部 数物・電子情報系学科 富井尚志

(2)

静的データ / 動的データ

• 静的データ

あらかじめ、データの全量がわかっている

データの追加・削除がない

→ 静的データ構造:配列

• 動的データ

データの追加・削除がある

したがって、データの全量もわからない(増減する)

→ 動的データ構造

順アクセスだけ: 線形リスト

効率的な探索、局所的なデータ管理:木構造

(3)

動的データ構造

• 線形リスト

次の項目への「ポインタ」

• 木構造

複数の「部分木」を持つ

部分木が高々2個の木構造: 2分木 binary tree

• 動的データ構造共通のオペレータ

要素の生成(追加)

生成先 ポインタ変数= (struct 構造体名 *)malloc(sizeof(struct 構造体名))

要素の削除

• free(削除先へのポインタ)

(4)

おまけ

• 木構造 tree structure

– 複数の「部分木」を持つ

部分木が高々2個の木構造: 2分木 binary tree

– どの部分木にも、自分自身(の節)を含まない – 親と子は 1:n の関係

• 網構造 network structure

– 複数の「参照先」を持つ

– 参照先の参照先の 参照先に自分自身を含んでよい …

(5)

解の候補

2分探索のイメージ: 解の候補を片側「半分」に絞り込む

解の方針:「区間」と「中央」を決めて、「中央」より「右」、「左」のどちらかに絞り込む

n 件のデータ

解の候補 解の候補

解の候補

解の候補

log2 n

2分探索: O( log n ) (オーダ ろぐエヌ) のア ルゴリズム

静的データの探索:2分探索

(6)

2分探索の特徴

• 探索の計算量(比較回数)は O(log n)

• あらかじめソートされている必要がある

– ソートの計算量:クイックソート O( n log n ) – ソートの計算量の方が重い

→ 最初に一度だけソートする。探索は頻繁 に行う。(固定的な名簿の探索に使え

る)

• つまり、静的データ(データの増減、追

加・削除が起こらない)を対象にしてい

る。

(7)

動的データを木構造を使って2分探索可能 にする方法: 探索木 (search tree)

• 任意の節点 N について、以下の条件を満 たしている木

1. (N の ) 左部分木中のすべての節点のキーが

、 N のキーよりも小さい

2. (N の ) 右部分木中のすべての節点のキーが

、 N のキーよりも大きい

(8)

動的データを木構造を使って2分探索可能 にする方法: 探索木 (search tree)

root

1

4

3 5

6 2

8 10

9 7

キーの値が小さい キーの値が大きい

(9)

探索木のオペレータ

• 探索木を探索する

• 探索木に節点を追加(挿入)する

• 探索木から節点を削除する

(10)

探索木 (search tree)

root

1

4

3 5

6 2

8 10

9 7

キーの値が小さい キーの値が大きい

8 を探せ!

(11)

探索木 (search tree)

root

1

4

3 5

6 2

8 10

9 7

キーの値が小さい キーの値が大きい

8 を探せ!

根から始めて

8 は左?右?

→ 右

(12)

探索木 (search tree)

root

1

4

3 5

6 2

8 10

9 7

キーの値が小さい キーの値が大きい

8 を探せ!

根から始めて

8 は左?右?

→ 左

(13)

探索木 (search tree)

root

1

4

3 5

6 2

8 10

9 7

キーの値が小さい キーの値が大きい

8 を探せ!

根から始めて

発見! O(log n)

(14)

探索木のオペレータ

• 探索木を探索する

• 探索木に節点を追加(挿入)する

• 探索木から節点を削除する

参照

関連したドキュメント

東京工業大学

情報理工学研究科 情報・通信工学専攻. 2012/7/12

関東総合通信局 東京電機大学 工学部電気電子工学科 電気通信システム 昭和62年3月以降

理工学部・情報理工学部・生命科学部・薬学部 AO 英語基準入学試験【4 月入学】 国際関係学部・グローバル教養学部・情報理工学部 AO

清水 悦郎 国立大学法人東京海洋大学 学術研究院海洋電子機械工学部門 教授 鶴指 眞志 長崎県立大学 地域創造学部実践経済学科 講師 クロサカタツヤ 株式会社企 代表取締役.

静岡大学 静岡キャンパス 静岡大学 浜松キャンパス 静岡県立大学 静岡県立大学短期大学部 東海大学 清水キャンパス

講師:首都大学東京 システムデザイン学部 知能機械システムコース 准教授 三好 洋美先生 芝浦工業大学 システム理工学部 生命科学科 助教 中村

静岡大学 静岡キャンパス 静岡大学 浜松キャンパス 静岡県立大学 静岡県立大学短期大学部 東海大学 清水キャンパス