本投稿に記載されている非常に凶悪なソート手法は実際のプロダクトでは使用してはいけません。
スターリンソートとは
ソートされていない要素を粛清して強制昇順リストを生成する凶悪なソート手法を知ったので 話題の(ほんとか?) V1で実装してみました。
先駆者たち23456が他の言語で実装しており参考にしました。
V1で実装
コード
pub fn stalin(src []int) []int {
if src.len == 0 {
return src
}
mut stalined := [src[0]] // スターリン済み配列
for i := 1; i < src.len; i++ {
if src[i] < stalined.last() {
continue
}
stalined << src[i]
}
return stalined
}
fn main() {
data := [1, 1, 4, 5, 1, 4, 8, 1, 0]
println(stalin(data))
}
実行
$ v run main.v
[1, 1, 4, 5, 8]