スターリンソートとは
配列を強引にソートします
ソートされていない要素は粛清(削除)されます
例)
[1,5,2,4,6,6,4,8]
これをソートすると
[1,5,6,8]
となる
※ネタかつ初心者クオリティのコードになりますのでご注意ください
作成に当たり先駆者様のコードを参考にしています
参考にさせて頂いた先駆者様
計算量O(n)の画期的なソートアルゴリズムであるスターリンソートをHaskell で実装してみた #Haskell
計算量O(n)で噂のスターリンソートを実装してみた
話題の粛清ソートアルゴリズム「スターリンソート」をPythonで実装した
実装
StalinSort.cpp
#include<bits/stdc++.h>
using namespace std;
int main(){
vector<int>data={1, 2, 1, 1, 4, 3, 9};
int tmp=data[0]-1;
for(int i=0;i<data.size();++i){
if(tmp>=data[i]){
data.erase(data.begin()+i);
--i;
}else{
tmp=data[i];
}
}
for(int j=0;j<data.size();++j){
cout<<data[j]<<endl;
}
}
実行結果
1
2
4
9
まとめ
たぶんこれで大丈夫、、なはず、、
何か変な部分があったら教えてください