スターリンソート

スターリン ソート – sort through は、データ損失を伴う並べ替えアルゴリズムの 1 つです。
このアルゴリズムは非常に生産的効率的で、時間計算量は O(n) です。

次のように動作します:

<オル>

  • 配列をループし、現在の要素と次の要素を比較します
  • 次の要素が現在の要素より小さい場合は、それを削除します
  • 結果として、O(n) でソートされた配列が得られます
  • アルゴリズムの出力の例:

    Gulag: [1, 3, 2, 4, 6, 42, 4, 8, 5, 0, 35, 10]
    Element 2 sent to Gulag
    Element 4 sent to Gulag
    Element 8 sent to Gulag
    Element 5 sent to Gulag
    Element 0 sent to Gulag
    Element 35 sent to Gulag
    Element 10 sent to Gulag
    Numbers: [1, 3, 4, 6, 42]
    Gulag: [2, 4, 8, 5, 0, 35, 10]
    

    Python 3 コード:

    gulag = []
    
    print(f"Numbers: {numbers}")
    print(f"Gulag: {numbers}")
    
    i = 0
    maximal = numbers[0]
    
    while i < len(numbers):
        element = numbers[i]
        if maximal > element:
            print(f"Element {element} sent to Gulag")
            gulag.append(element)
            del numbers[i]
        else:
            maximal = element        
            i += 1
    
    print(f"Numbers: {numbers}")
    print(f"Gulag: {gulag}")
    

    欠点としてはデータ損失が挙げられますが、O(n) で理想的なソート済みリストを実現するためには、他にどのような方法があるでしょうか?

    リンク

    https://gitlab.com/demensdeum /algorithms/-/tree/master/sortAlgorithms/stalinSort

    ソース

    https://github.com/gustavo-depaula/stalin-sort
    https://www.youtube.com/shorts/juRL-Xn-E00
    https://www.youtube.com/watch?v=L78i2YcyYfk

    Leave a Comment

    Your email address will not be published. Required fields are marked *