午前  シェルソートについて

なぞなぞさん  
(No.1)
https://www.ap-siken.com/kakomon/24_haru/q7.html

1回目で順序が「 3,1,6,4,2,8,7,5,9」になるのは納得です。が次に

Hが1なので、要素ごとが互いに1つずつ離れた要素から成る 3,1,6,4,2,8,7,5,9 を整列し、1,2,3,4,5,6,7,8,9 とする。とありますが

互いに1つずつなられると  31 64  42  87  59 というグループに分けられて
それでソートすると「 1,3,4,6,2,8,5,7,9 」になりませんか?
2023.04.02 14:59
Howitzerさん 
(No.2)
要素の位置を考えましょう。(0~8でも1~9でも可)
H=3のときは、要素の位置をH=3で割って
・割り切れるグループ
・1余るグループ
・2余るグループ
の3グループに分かれます。
H=1のときは、どの要素の位置も1で割り切れるので、
全ての要素が「割り切れるグループ」になります。つまり分割されません。
2023.04.02 15:47
y4 kさん 
(No.3)
この投稿は投稿者により削除されました。(2023.04.02 16:02)
2023.04.02 16:02
boyonboyonさん 
AP シルバーマイスター
(No.4)
最初の数列
7,2,8,3,1,9,4,5,6
で、H=3のとき
3要素分離れた要素は、
7,*,*,3,*,*,4
と数えます。とばすのは2つです。
H=1のとき、とばすのは0個なので、ここでは
3,1,6,4,2,8,7,5,9
になります。

ソートの流れの確認ですが、
7,2,8,3,1,9,4,5,6
H=3(3行で表します。)
7,3,4
2,1,5
8,9,6
の3グループそれぞれでソート
3,4,7
1,2,5
6,8,9
先頭の列から順に一列に戻して
3,1,6,4,2,8,7,5,9
H=1の処理になります。

もしも、H=2を考えると
3,6,2,7,9
1,4,8,5
の2つのグループになり
2,3,6,7,9
1,4,5,8
から
2,1,3,4,6,5,7,8,9
ができます。
2023.04.02 16:14

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop