はじめる前に
灰色である筆者の知識は限定されています。編集リクエスト通しますので、是非知見を共有していただけると幸いです!
また、名称は二次創作です。
はじめに
再帰処理は美しいです。無限大の可能性を秘めています。
ということで用途別にまとめてみます。
評価項目は以下のとおりです
名称
説明 + 一般用途
コード
総評
では参りましょう。
目次
・自己詠唱
・永久尾
自己詠唱
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など
総評:とても芸術的です。
まとめ
ただの座学がさらに楽しく感じます。まるで恋愛ゲームを攻略してるかのごとく...
というわけで、ハッシュタグ #算法命名 で沢山考案しちゃいましょう!
ここまでお疲れ様でした。