データの整列方法
データ整列方法は「整列と探索」のページを参考にしてください。
★★★宿題:二種向け★(2000/3/14)
データの整列方法に関する記述のうち,正しいものはどれか。
ア クイックソートは,ある間隔で要素を取り出した部分列を整列し,更に間
隔をつめた部分列を取り出して整列する方法である。
イ シェルソートは,隣り合う要素を比較して,大小の順が逆であれば,それ
らの要素を入れ替えるという操作を繰り返して行う方法である。
ウ バブルソートは,中間的な基準値を決めて,それより大きな値の要素を集
めた区分と小さな値の要素を集めた区分とに振り分ける。次にそれぞれの区
分の中で同様な処理を繰り返す方法である。
エ ヒープソートは,未整列の部分を部分木で表し,そこから最大値又は最小
値を取り出して既整列の部分に移す。この操作を繰り返して,未整列部分を
縮めてゆく方法である。
(解答)
ア:シェルソートの説明
イ:バブルソートの説明
ウ:クイックソートの説明
エ:正解
■解答■(宿題メールより)
二種午前平成11年春問28
>ア:シェルソートの説明
>イ:バブルソートの説明
>ウ:クイックソートの説明
>エ:正解
どうもありがとうございました。
>ア クイックソート
>
配列中から1件のデータを選び、これより大きなデータを上位に、小さな
> データを下位に移動する。
>
大きいデータ群と小さいデータ群に対して別々に同様の操作を行う。
>
これをさらに細かく繰り返すとソートが完了する。
>イ シェルソート
>
配列中のデータから、まず一定間隔(例えばm)ごとにデータをとって
> 整列する。
>
これをずらしながらm回繰り返せば、全データをmグループに分けて整列
> したことになり、大まかには整列される。
>
間隔幅を変えて大まかな整列を繰り返せば、整列の状態に近づく。
>
そこで挿入ソートを行えば、効率よくソートが完了する。
>ウ バブルソート
>
配列中のデータの隣り合った二つを比較し、逆順であれば入れ替える。
> これを何回も繰り返し、ソートを完了する。
>エ 正解
>
>参考:「合格情報処理2月号付録
情報システム辞典」
どうもありがとうございました。
>クイックソート[quick sort]
>基準となる値(軸)を決め、軸よりも小さければ軸の左へ、
>大きければ軸の右側に集めて軸で2当分し、分割された
データ列に対しても、おなじような分割をくりかえす。
>「情報処理用語辞典」p.126 新星出版社
>
>シェルソート[shell sort]
>データを飛び(ギャップという)のあるいくつかの部分に
分けておおざっぱに整列してから基本挿入法をを適用する
>整理法。
>「情報処理用語辞典」p.166 新星出版社
>
>バブルソート[bubble sort]
>隣同士のデータを順に比較して、大小関係が逆ならば
>交換を行う整列法。
>「情報処理用語辞典」p.294 新星出版社
>
>ヒープソート[heap sort]
>ヒープを再構成しながら、ヒープから最大値(または最小値)
>を取り出すことによって行う整列法。
>「情報処理用語辞典」p.300 新星出版社
どうもありがとうございました。
>
ソートの名前と機能との対応が覚えられません。
>
語呂合わせで覚えている方がいたら教えてほしいのですが。
語呂あわせの本が出版されていましたよ。アルゴリズムと英語の意味から,
考えれば,覚えやすいと思います。トランプを10枚用意して,手でやって
見て下さい。
シェルは,貝殻で挟む,ヒープは山,バブルは泡が水の中を上がってくる,
イメージです。
★★★宿題:二種向け★(2000/5/22)
親の節の値が子の節の値より小さいヒープがある。このヒープへの挿入は,要
素を最後部に追加し,その要素が親よりも小さい間,親と子を交換することを繰
り返せばよい。次のヒープの * の位置に要素 7
を追加したとき,A の位置に来
る要素はどれか。
(9)
/ \
/ \
/ \
(11) (14)
/ \ / \
/ \ A / \
(24) ((25)) (19) (28)
/\ /
/ \ /
(29) (34) *
ア 7
イ 11
ウ 24
エ 25
(解答例)
*に7を入れると、子が親より小さいと
入れ替えることから
(1)25と7を入れ替える ← Aは7になる
(2)11と7を入れ替える ← Aは11になる
(3)9と7を入れ替える ← Aの11はかわらず
の処理を実行する。
よって、Aは11となる。
■解答■(宿題メールより)
二種午前平成12年春問15
>条件を満たすようにヒープを完成させるには以下の1〜4の手順で進めます。
>
>1.*に7を追加した状態
> (9)
> / \
> / \
> / \
> (11) (14)
> / \ / \
> / \ A / \
> (24) ((25)) (19) (28)
> /\ /
> / \ /
>(29) (34) 7
>
>2.7と25の交換
> (9)
> / \
> / \
> / \
> (11) (14)
> / \ / \
> / \ A / \
> (24) (7) (19) (28)
> /\ /
> / \ /
>(29) (34) (25)
>
>3.11と7の交換
> (9)
> / \
> / \
> / \
> (7) (14)
> / \ / \
> / \ A / \
> (24) (11) (19) (28)
> /\ /
> / \ /
>(29) (34) (25)
>
>4.7と9の交換でヒーブ完成
> (7)
> / \
> / \
> / \
> (9) (14)
> / \ / \
> / \ A / \
> (24) (11) (19) (28)
> /\ /
> / \ /
>(29) (34) (25)
>
>よってAには11がくる。
どうもありがとうございました。