問題タブ [priority-queue]
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.
f# - F#優先キュー
F#ライブラリには優先キューが含まれていますか?そうでなければ、誰かがF#での優先度付きキューの実装を私に指摘できますか?
c++ - プライオリティ キュー使用時のセグメンテーション違反
AI という名前のクラスの要素を含む優先キューがあります。このキューの要素は、キューの下にある可能性があります (優先度が低くなります)。そのため、選択した要素が得られるまで、いくつかの要素をポップしようとしています。選択した要素を取得したら、一時的に配列に保存したすべての要素をプッシュする予定です。ループがあり、繰り返しごとにキューをさらに下って、ポップした要素が自分の選択であるかどうかを確認します。このようにして、より多くのデータが一時配列にあります。この一時配列からプライオリティ キューにデータをプッシュしようとすると、問題が発生します。優先度の基礎となるコンテナはベクトルであり、デバッグは問題が行 std::push_heap(c.begin(), c.end(), comp); で stl_queue.h にあることを示しています。(c はベクトル)
これは間違った方法である可能性があり、malloc の代わりにコンストラクターを使用し、プライオリティ キューの代わりに std:list を使用する必要があることはわかっていますが、ここで何が起こっているのか教えてもらえますか?
scala - 一般的な優先度付きキューの共変型と反変型
型にパラメータ化されたジェネリックデータ型をScalaに実装しようとしてT
いますOrdered[T]
。具体的には、Sleator&Tarjanのスキューヒープ優先度キューの永続バージョンです。こことOdersky-Spoon-Vennersの説明に基づいて複雑な型のパラメーター宣言をたくさん追加した後、実際の機能をテスト/デバッグする前に、コンパイラーエラーが1つ発生しました。
以下は私のコードの簡略版です。
これにより、次のエラーが発生します。
の宣言のいくつかの変形を試しましdelMin
たが、役に立ちませんでした。問題は理解できたと思いますが(メソッド+
は注文保証が必要です)、これはどこに置くべきですか?そして、代わりにdelMin
戻ることを宣言する方法はありますか?SkewHeap[T]
SkewHeap[U]
go - Priority Queue の Pop メソッドの何が問題になっていますか?
Rob Pike のロード バランサ デモに基づいて、独自のプライオリティ キューを実装しましたが、Pop メソッドが正しくありません。何が問題なのか誰か教えてもらえますか?
編集: cthom06 が指摘した方法以外に、これを修正する別の方法は、次のようにポインター配列を作成することです。
c++ - C ++ベクター/優先キューのリスト?
なぜC++はそのようなことを許可しないのですか?
複数の優先キューが必要です。その数は実行時に決定されます。
これはコンパイルに失敗します
std::vector<std::priorityqueue<Class A>>
。
より良いアプローチはありますか?
java - PriorityQueueでTreeMapを使用する必要があるのはいつですか。その逆も同様です。
どちらも、プリムのアルゴリズムに必要な最小値を取得し、キーを削除して再挿入して値を更新するように強制しているようです。この例だけでなく、一般的に言えば、一方を他方よりも使用することの利点はありますか?
java - ThreadPoolExecutorとカスタムタスクを使用してPriorityBlockingQueueを実装する方法
私はたくさん検索しましたが、私の問題の解決策を見つけることができませんでした。
BaseTask
を使用しThreadPoolExecutor
てタスクを処理する独自のクラスがあります。タスクの優先順位付けが必要ですが、タスクをオブジェクトにラップするため、 PriorityBlockingQueue
Iを使用しようとすると取得します。ClassCastException
ThreadPoolExecutor
FutureTask
FutureTask
は実装されていないため、これは明らかに理にかなっていComparable
ますが、優先度の問題を解決するにはどうすればよいでしょうか。newTaskFor()
でオーバーライドできることを読みましたがThreadPoolExecutor
、このメソッドがまったく見つからないようです...?
任意の提案をいただければ幸いです!
役立つコード:
私のBaseTask
クラスでは
BaseFutureTask
クラスで
BaseThreadPoolExecutor
クラスiで3つのメソッドをオーバーライドします...このsubmit
クラスのコンストラクターが呼び出されますが、どのsubmit
メソッドも呼び出されません
java - IntentServiceを使用して優先ネットワークを実行する
IntentService
保留中のインテントのキューに優先順位を付けたまま、を使用してネットワーキングを行うことが可能かどうか疑問に思っていました。バックグラウンドでいくつかの画像をダウンロードし、必要に応じてさらに追加し(別の画像を送信しIntent
)、必要に応じてキューをリセットできるようにする(できれば特定のインテントを使用する)ことが私の目標です。それはすべて可能ですが、IntentServie
その「停止」を送信するときIntent
は、キュー内の次のアイテムとして処理する必要があります。現在の最後のアイテムではありません。
編集
興味のある方のために、私はAOSPコードを取得しIntentService
、ニーズに合わせて変更しました。IntentHandlerをサブクラス化できない理由は、ServiceHandler
内のプライベートクラスのためですIntentHandler
。
私の中にはServiceHandler
新しい方法があります:
このメソッドはonStart
、単にではなくから呼び出されますsendMessage
全体的にコードはまだ制限されていますが、キューの先頭にあるメッセージをすばやく追跡することができます。これはとにかく私が求めていたものです。
c# - C#ジェネリックス:Tをどこに挿入するかT:IComparableインターフェイスの競合
これは、C#ジェネリック/デザインパターンマスターにとっての課題です。
ジェネリックヒープを実装してから、ヒープを使用する優先キューを実装しようとしています。
私のヒープの署名は次のとおりです。
私の優先キュークラスは次のとおりです。
しかし、そうするとき、コンパイラは(当然のことながら)IComparebleがIComparebleインターフェイスを実装していないと文句を言います。
と競合する
これを解決するために何ができますか?!
完全なコンパイラエラー:
c# - ディスパッチャとマルチスレッド
長時間実行計算MSDNの例を使用したシングルスレッドアプリケーションによると、 1つのスレッドでレスポンシブGUIを作成する可能性があります。Dispatcher
オブジェクトのおかげで、作業項目の優先度を設定できます。
私の質問は、これが可能な場合、バックグラウンドスレッドで単純なタスク(シングルコアCPUが1つしかない場合)を実行する必要があるのはどのような意味ですか?
ありがとう