LoginSignup
0

More than 1 year has passed since last update.

過去の話題「スターリンソート」をVでやってみた

Posted at

本投稿に記載されている非常に凶悪なソート手法は実際のプロダクトでは使用してはいけません。

スターリンソートとは

ソートされていない要素を粛清して強制昇順リストを生成する凶悪なソート手法を知ったので 話題の(ほんとか?) 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]

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0