Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
スターリンマージソート
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
suzakutakumi
July 10, 2021
Programming
580
3
Share
スターリンマージソート
Zliの大LTで発表したスライドです
suzakutakumi
July 10, 2021
More Decks by suzakutakumi
See All by suzakutakumi
ピクロス作成の中間発表
suzakutakumi
0
100
しゅみろん
suzakutakumi
0
170
trap-search
suzakutakumi
1
52
Pyramid Makerの作成
suzakutakumi
0
30
マークダウンパーサーの自作
suzakutakumi
0
120
絵文字ジェネレータボットの作成
suzakutakumi
0
170
send_discord
suzakutakumi
0
57
独自ドメインについて
suzakutakumi
0
52
ESP32とAlexaを用いたエアコン制御
suzakutakumi
0
1.3k
Other Decks in Programming
See All in Programming
クラウドネイティブなエンジニアに向ける Raycastの魅力と実際の活用事例
nealle
2
190
Cache-moi si tu peux : patterns et pièges du cache en production - Devoxx France 2026 - Conférence
slecache
0
240
의존성 주입과 모듈화
fornewid
0
140
2026-03-27 #terminalnight 変数展開とコマンド展開でターミナル作業をスマートにする方法
masasuzu
0
340
Kingdom of the Machine
yui_knk
2
310
AWS re:Invent 2025の少し振り返り + DevOps AgentとBacklogを連携させてみた
satoshi256kbyte
3
160
SkillがSkillを生む:QA観点出しを自動化した
sontixyou
6
3.4k
Alternatives to JPA 2026
debop
0
110
Making the RBS Parser Faster
soutaro
0
350
TiDBのアーキテクチャから学ぶ分散システム入門 〜MySQL互換のNewSQLは何を解決するのか〜 / tidb-architecture-study
dznbk
1
180
Coding as Prompting Since 2025
ragingwind
0
830
Vibe NLP for Applied NLP
inesmontani
PRO
0
430
Featured
See All Featured
Statistics for Hackers
jakevdp
799
230k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
130
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8k
The browser strikes back
jonoalderson
0
970
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
480
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
1.1k
How to Think Like a Performance Engineer
csswizardry
28
2.5k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.9k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
The untapped power of vector embeddings
frankvandijk
2
1.7k
Transcript
スターリンマージソート 2021/07/10 Zli 大LT
自己紹介 HN:朱雀 匠(本名:鈴木 拓眞) Twitter: @suzakutakumi3
None
None
目的 スターリンソートから新しいソートアルゴリズムを考えました 実用性はない気がします また、世界のどこかに同じアルゴリズムがあると思うのでn番煎じです
スターリンソートとは ソートするのに邪魔な要素を粛清して、昇順・降順に並び替えるアルゴリズムです Pythonでの例: a=[1, 3, 2, -2,10,5,11] print(StalinSort(a)) 出力:[1, 3,
10, 11]
スターリンソートは実用的なアルゴリズムじゃない そこで、実用的なソートアルゴリズムにしよう!
スターリンマージソート スターリンマージソートは、スターリンソートとマージソートを元に考えました 最初にスターリンソートを繰り返し、並び替えられた配列を複数作ります その後、マージソートと同じ原理でマージしていきます 詳しくは次のページで
手順1:並び替えられた配列の生成 例:[0, 114, 13, 600, -282, 114] 1.スターリンソートをして、結果と除外された値の配列を作る 整列された配列:[0, 114,
600] 除外された配列:[13, -282, 114] 2.除外された配列で1と同様のことをする 整列された配列:[13, 114] 除外された配列:[-282] これで、整列された3つの配列が用意できました [ [0,114,600], [13, 114], [-282] ]
手順2:並び替えられた配列をマージする [ [0,114,600], [13, 114], [-282] ] 1.[0,114,600]と[13, 114]をマージします [
[0,13,114,114,600], [-282] ] 2.[0,13,114,114,600]と[-282]をマージします [-282,0,13,114,114,600]
計算量について 最悪計算量はO(n^2)です [n,n-1,n-2,・・・,3,2,1]の場合、最悪計算量になります 平均計算量はよくわかっていません マージ部分の処理数は、 分割された配列の数mとソートする配列の長さnとすると O(nlogm) になります
実際に時間を計測してみた [0,1,2,3,4,5,6,7,8,9]を10!通り並び替え実行し、実行し終えるまでの時間を測定しました マージソートが他のバブルソートなどよりも遅く、しっかりと計測できていなさそう
まとめ 平均処理数がわからないが、処理時間を見て遅いことが予想される アルゴリズムを考えてみて、先駆者たちの考えたアルゴリズムがすごかったこ とが再認識できた