Sort
sortのアルゴリズム
#WIP
Quicksort
Intro Sort
Merge sort
Batcher odd–even mergesort
Bogo sort
Bubble Sort
Heap Sort
バケットソート
ビンソート
スターリンソート
Insertion Sort
基数ソート
計数ソート
Selection Sort
コムソート
comb sort
Stooge sort
Slowsort
Smoothsort
ノームソート
Gnome sort
シェーカーソート
逆写像ソート
シェルソート
Adaptive sort
Block sort
WikiSortとも言う?
https://www.youtube.com/watch?v=NjcSyD7p660
Timsort
ICan'tBelieveItCanSort
https://twitter.com/rosso016/status/1448146143490162689
https://arxiv.org/pdf/2110.01111.pdf
2021年に発見されたソート
topological sort
Sleep Sort
https://qiita.com/uhyo/items/6f70d94c36d8da5aa5d6
Bitonic mergesort
「ばいとにっく」と読む
常に$ O(n\log n)
Ken Batcher氏考案
並列ソートに適している
一般的にはソートは、「要素数」「要素の並び方」に左右される
このソートは計算量が「要素数」のみで決まる
データ数が2の冪乗個でないと使えない
0paddingなどで対応
https://en.wikipedia.org/wiki/Bitonic_sorter
Sortの分類
安定ソート
https://ja.wikipedia.org/wiki/安定ソート
並列ソート
https://okuranagaimo.blogspot.com/2020/07/timsort.html
https://speakerdeck.com/lotz84/recursion-schemesdekao-erubing-beti-earugorizumu?slide=2
haskell
http://aba.hatenablog.com/entry/2020/01/19/112947
Quicksort vs Insertion Sort
https://qiita.com/drken/items/44c60118ab3703f7727f
各sortの以下のような項目を知りたい #??
どういうアイディアでsortしているのか
sort名の名前の意味
なにが「quick」なのか、どのへんが「bubble」なのかなど、「どういうアイディアか」とsort名が結びつくようにしたい
計算量
最低、最高、平均
またそのような計算量になる直感的な理解の言語化
sort名と計算量を結びつけて記憶するのはたぶん無理なので、「どういうアイディアか」から計算量を思い出せるようにすると良いと思う
sort時の動きのvisual
思い出す時にパット見で思い出せると良い
可視化するやつ
https://algorithm-visualizer.org/divide-and-conquer/quicksort
wikipedia
https://www.youtube.com/watch?v=kPRA0W1kECg
音声化と可視化
アルゴリズム
hsのコード(関数型)
tsのコード(その他)
配列の破壊的変更とかして手続的に書かなければあまり書く意味ないなmrsekut.icon
再帰を使わずに書かないとわざわざ書く意味があまりない
hsの下位互換にしかならない
長所と短所
速いだけなら「常にそれ使えば良いじゃん」になる
何かしらメリデメがあるはず
「実装が難しい」とかも理由に上がったりするのか?
改良版のsortとかがあるなら
code:temple
概要
命名
計算量
アルゴリズム
可視化
コード例
派生とか
長所と短所
参考
https://qiita.com/nekonibox/items/c1c7f4d1ad1695967e39