3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have 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]
  1. The V Programming Language / github.com/vlang/v 2

  2. 計算量O(n)の画期的なソートアルゴリズムであるスターリンソートをHaskell で実装してみた #Haskell

  3. 計算量O(n)で噂のスターリンソートを実装してみた

  4. [Rust] スターリンソートと PartialOrd

  5. rubyでスターリンソートをやってみた(ブロック渡しも可能)

  6. 話題の粛清ソートアルゴリズム「スターリンソート」をPythonで実装した

3
0
0

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
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?