C#で数独を作りたいです。ギザギザまたは多次元配列を使用する必要がありますか。なぜ?
数独などの単純な配列ロジックでは、ギザギザ配列の方が高速で効率的であることを知っています。しかし、おそらく他の議論がありますか?
前もって感謝します。
編集:数独でいくつかの解決方法を実行する必要があります。バックトラッカーアルゴリズムのように。多次元配列の方が構文が優れていることがわかりました。
私の質問は次のとおりだと思います:使用、実装、および変更が最も簡単なのはどれですか?
C#で数独を作りたいです。ギザギザまたは多次元配列を使用する必要がありますか。なぜ?
数独などの単純な配列ロジックでは、ギザギザ配列の方が高速で効率的であることを知っています。しかし、おそらく他の議論がありますか?
前もって感謝します。
編集:数独でいくつかの解決方法を実行する必要があります。バックトラッカーアルゴリズムのように。多次元配列の方が構文が優れていることがわかりました。
私の質問は次のとおりだと思います:使用、実装、および変更が最も簡単なのはどれですか?
時期尚早の最適化のためだけに物事を複雑にしないでください。単純な多次元配列を使用し、後でそれがパフォーマンスの問題を引き起こしていることがわかった場合は、これを考慮してコードをリファクタリングします。
ヒント: パフォーマンスの問題は、多次元配列やギザギザ配列の選択に起因するものではありません。
特定のデータを最もよく表すデータ構造を選択します。
配列を使用して、固定次元のグリッドを表していますか (数独ソリューションなど)。次に、多次元配列を使用します。
配列に保存したいものの数を変更できますか (たとえば、数独の開始パターンやユーザーが数独セルに入力する可能性のある値など)? それなら、ギザギザの配列の方がいいかもしれません。
プログラムに複数のタイプの配列を含めることもできます。たとえば、解を格納する多次元配列や他のデータを格納するジャグ配列などです。または、まったく異なるデータ構造。
要するに、データ量が比較的少ない数独のようなものでは、パフォーマンスは最大の問題にはならないということです。プログラムをできるだけ明確に構成し、後でパフォーマンスについて心配する方がよいでしょう。
個人的には、このようなものはギザギザの配列の方が読みやすいと思いますが、それは個人的な好みに帰着します。結局のところ、数独にパフォーマンス上の問題はありませんので、より明確な方を使用してください。