問題タブ [heaps-algorithm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
9540 参照

algorithm - 順列のためのヒープのアルゴリズム

私は面接の準備をしており、Heap のアルゴリズムを暗記しようとしています。

このアルゴリズムは、順列を生成するための非常に有名なアルゴリズムです。簡潔で高速で、コードと連携して組み合わせを生成します。

問題は、私は物事を暗記するのが好きではなく、後でアルゴリズムを「推測」するために常に概念を保持しようとしていることです.

このアルゴリズムは本当に直感的ではなく、それがどのように機能するかを自分自身に説明する方法を見つけることができません.

順列を生成するときに、このアルゴリズムが期待どおりに機能する理由方法を教えてください。

0 投票する
3 に答える
2167 参照

c# - ヒープアルゴリズムの実装

ヒープ順列アルゴリズムのこの C# 実装の何が問題なのかわからないようです。入力配列の正しい順列は得られません。誰か助けてくれませんか?

ここに疑似コードがあります

これは私のc#実装です

0 投票する
0 に答える
195 参照

javascript - 再帰関数 - ヒープのアルゴリズム関数ロジック

この関数の背後にあるロジックを理解しようとしています:

この関数は、渡された配列の順列を返します。それは機能していますが、私はそれがどのように機能するのか本当にわかりません。プッシュ呼び出しが 1 つしかない場合、結果配列にはどのくらい正確に順列がありますか? また、perm 関数の呼び出し回数は 4 回以下ですか? このことの論理を理解したいだけです。スワップ機能は自明です。perm関数のelseステートメントに問題があります。

前もって感謝します..

0 投票する
1 に答える
387 参照

javascript - JavaScriptの非再帰的置換アルゴリズムのパフォーマンス

if (tl;dr) {

後藤https://jsfiddle.net/y5v0ur4p/60/

この順列パターンをより速く実行する方法についてのアイデアはありますか?

} else {

再帰的な関数 (ヒープのアルゴリズムなど) のパフォーマンスに追いつくことができる非再帰的な順列関数を JavaScript で書くことが可能かどうか疑問に思っていました。数週間後、私はこれまでのところかなりうまくいったアイデアを思いつきました. 説明はこちらhttps://jsfiddle.net/u68wyvzk/6/

説明が不明確な場合は、質問してください:) }

0 投票する
1 に答える
520 参照

javascript - ヒープのアルゴリズム順列 JavaScript と再帰のスタック?

ヒープのアルゴリズム順列に基づいて繰り返される文字列をカウントする割り当てがあります。最初にやりたいことは、スワップされた文字列を出力することです。ジェイクの回答からこのコードを見つけました この関数の出力は、交換された文字列です。

デバッガーで試してみましたが、まだ何が起こっているのかわかりません。

0 投票する
2 に答える
1034 参照

javascript - Javascript ヒープのアルゴリズム (非再帰的)

JavaScript で Heap の非再帰アルゴリズムを実装しました。順列をチェックすると、console.log(arr)すべてが期待どおりに機能します。しかし、各順列を結果配列にプッシュしようとすると、すべてが壊れてしまいます。最後の反復順列で満たされた結果を返すだけです。