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

アルゴリズム論 (第3回)

N/A
N/A
Protected

Academic year: 2021

シェア "アルゴリズム論 (第3回)"

Copied!
16
0
0

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

全文

(1)

アルゴリズム論

(第3回)

佐々木研(情報システム構築学講座)

講師 山田敬三

[email protected]

(2)

単純挿入法

(3)

単純挿入法

注目している部分列の先頭要素を,

既に整列された部分列の適切な場所に挿入する.

(4)

単純挿入法のアルゴリズム

for 𝑖𝑖 ← 2 to 𝑛𝑛 do

if 𝑎𝑎0, … , 𝑎𝑎𝑖𝑖−1 の中に,𝑎𝑎𝑖𝑖 < 𝑎𝑎𝑗𝑗 となる 𝑎𝑎𝑗𝑗 が存在する then 条件を満たす最初の 𝑎𝑎𝑗𝑗 の直前に 𝑎𝑎𝑖𝑖 を挿入する.

end end

(5)

実行例

a[] = 7,2,3,4,8,1,5,6 a[] = 2,7,3,4,8,1,5,6 a[] = 2,3,7,4,8,1,5,6 a[] = 2,3,4,7,8,1,5,6 a[] = 2,3,4,7,8,1,5,6 a[] = 1,2,3,4,7,8,5,6 a[] = 1,2,3,4,5,7,8,6 a[] = 1,2,3,4,5,6,7,8

(6)

単純選択法の計算量

比較回数

𝐶𝐶 ≤ 1 + 2 + + 𝑛𝑛 − 1 = 𝑂𝑂 𝑛𝑛2

挿入回数

𝑁𝑁 ≤ 𝑛𝑛 − 1

(7)

基数ソート

(8)

基数ソート

キーが整数のときに利用できる.

キーの最大桁数を 𝑘𝑘 とする.(最大値が1234のとき,𝑘𝑘 = 4

(9)

基数ソートのアルゴリズム

for 𝑗𝑗 1 to 𝑘𝑘 do

列を下位から第 𝑗𝑗 桁目に関して整列する.

ただし,第 𝑗𝑗 桁目の値が同じ要素については,

それらの順番が整列の前後で変わらないようにする.

end

安定した整列アルゴリズム

(10)

実行例

入力列: 125,900,123,800,143,700,600,501 一の桁: 900,800,700,600,501,123,143,125 十の桁: 900,800,700,600,501,123,125,143 百の桁: 123,125,143,501,600,700,800,900

(11)

バケットソート

(12)

バケットソート

入力列を 𝑘𝑘𝑘𝑘𝑘𝑘 𝑎𝑎𝑖𝑖 の昇順に整列した列を返す.

(13)

バケットソートのアルゴリズム

0 ≤ 𝑥𝑥 ≤ 9 について,𝑃𝑃𝑥𝑥 を用意する.

for 𝑖𝑖 1 to 𝑛𝑛 do 𝑘𝑘 𝑘𝑘𝑘𝑘𝑘𝑘 𝑎𝑎𝑖𝑖

𝑎𝑎𝑖𝑖 𝑃𝑃𝑦𝑦 の末尾に追加する.

end

𝑃𝑃0 から 𝑃𝑃9 までを連接し,出力する.

(14)

実行例 ( 𝑘𝑘𝑘𝑘𝑘𝑘 𝑎𝑎

𝑖𝑖

は一の桁)

入力列: 125,900,123,800,143,700,600,501 𝑃𝑃0

𝑃𝑃1 𝑃𝑃3 𝑃𝑃5

出力列: 900,800,700,600,501,123,143,125 900,800,700,600

501

123,143 125

(15)

ソート法まとめ

比較に よる

時間 計算量

空間

計算量 安定性 単純選択ソート 𝑂𝑂 𝑁𝑁2 𝑂𝑂 1 単純挿入ソート 𝑂𝑂 𝑁𝑁2 𝑂𝑂 1 バブルソート 𝑂𝑂 𝑁𝑁2 𝑂𝑂 1 クイックソート 𝑂𝑂 𝑁𝑁log 𝑁𝑁 𝑂𝑂 log 𝑁𝑁 基数ソート 𝑂𝑂 𝑁𝑁 𝑂𝑂 𝑁𝑁

(16)

問題

次の配列を単純選択法,単純挿入法,バブルソート,クイックソート

(最初の分割のみ,pivotは任意)で,それぞれ整列しなさい.

8,4,6,5,1,7,2

次の配列を基数ソートを用いて,整列しなさい.

851,367,783,478,143,117,127,509

参照

関連したドキュメント

不適合 (第二)地下水基準不適合として調製 省略 第二地下水基準不適合として調製 不適合.

第7回 第8回 第9回 第10回

第6回赤潮( Skeletonema costatum 、 Mesodinium rubrum 第7回赤潮( Cryptomonadaceae ) 第7回赤潮(Cryptomonadaceae). 第8回赤潮( Thalassiosira

Dual I/O リードコマンドは、SI/SIO0、SO/SIO1 のピン機能が入出力に切り替わり、アドレス入力 とデータ出力の両方を x2

震災発生時のがれき処理に関

受入都道府県 搬出側 相手方 種類 数量(万トン) 備考 茨城県 石巻ブロック 民間事業者 可燃物等 調整中. 東京都 石巻ブロック 民間事業者 混合廃棄物

シュラウド 補修工事終了 再循環系配管 補修工事予定 シュラウド 補修工事終了 再循環系配管 補修工事中. シュラウド

協力: 株式会社 ワコールアートセンター/日本映像翻訳アカデミー(R):English Clock/有限会社