0
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?

再帰処理まとめ[競プロ][算法命名]

Posted at

はじめる前に

灰色である筆者の知識は限定されています。編集リクエスト通しますので、是非知見を共有していただけると幸いです!
また、名称は二次創作です。

はじめに

再帰処理は美しいです。無限大の可能性を秘めています。
ということで用途別にまとめてみます。
評価項目は以下のとおりです

名称
説明 + 一般用途
コード
総評

では参りましょう。

目次

・自己詠唱
・永久尾

自己詠唱

void solve(int value) {
    if (value == limit)
        return;
    cout << "haha";
    return seek(++value);
}

一定の条件を満たすまで同じ関数を呼び続けるやつです。
用途:マージソートなど
総評:普通すぎてダサい; オーバーヘッドがきつい...

永久尾

void solve(queue<int> q) {
    while(!q.isEmpty()) {
        auto fr = q.front();
        q.pop();
        if(!conditionMet(fr)) q.enqueue(randFromPool());
    }
}

Queueを起点に探索します。直近の処理が直近の指令なのが独特です。
用途:BFSなど
総評:とても芸術的です。

まとめ

ただの座学がさらに楽しく感じます。まるで恋愛ゲームを攻略してるかのごとく...
というわけで、ハッシュタグ #算法命名 で沢山考案しちゃいましょう!
ここまでお疲れ様でした。

0
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
0
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?