タグ付けされた質問 「data-structures」

ソフトウェアアプリケーション内でのデータの効率的な保存と表現に関する質問。

2
Chris Okasakiの1996年の論文と1999年の本、Purely Functional Data Structuresの内容の違いは何ですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 純粋に機能的なデータ構造を読みたい。私は簡単に論文(PDFとして無料で入手可能)を見つけましたが、書籍も入手できることを確認します。ですから、これらの2つの出版物の違いがあれば、それが何かを知りたいと思います。

4
開発者が絶対に知っておくべきアルゴリズムとデータ構造はどれですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 成功するエンタープライズJava開発者になりたい。どのアルゴリズムとデータ構造をよく理解する必要がありますか?どの本を勧めますか? Java開発者として成功するには、CLRSで提供されているような高度なアルゴリズムをすべて知っている必要がありますか? 優先度の高い順に学習する必要があるトピックのリストを提案できますか? 私が知っている必要があります: 検索中? 仕分け? グラフ/ツリー? 等?

8
一般に、文字列キーの使用が一般に悪い考えと見なされるのはなぜですか?
これはしばらくの間私を悩ませてきました。ほとんどの場合、ハッシュテーブル、プログラマ、書籍、記事などの構造にデータを保存する場合、文字列値による構造内の要素のインデックス付けは悪い習慣と見なされます。しかし、これまでのところ、それが悪い習慣であると考えられる理由を説明するための単一のそのような情報源を見つけていません。プログラミング言語に依存していますか?基礎となるフレームワーク上で?実装について 役立つ場合は、2つの簡単な例を挙げます。 行がString主キーによってインデックス付けされるSQLのようなテーブル。 キーが文字列である.NET辞書。

4
データ指向設計-1-2を超える構造の「メンバー」では非実用的ですか?
データ指向設計の通常の例は、ボール構造です。 struct Ball { float Radius; float XYZ[3]; }; そして、彼らはstd::vector<Ball>ベクトルを繰り返すアルゴリズムを作ります。 次に、同じことを提供しますが、データ指向設計で実装されます。 struct Balls { std::vector<float> Radiuses; std::vector<XYZ[3]> XYZs; }; 最初にすべての半径で、次にすべての位置などで反復する場合、これは良いことです。ただし、ベクター内のボールをどのように移動しますか?元のバージョンでは、を持っている場合std::vector<Ball> BallsAll、any BallsAll[x]をanyに移動できますBallsAll[y]。 ただし、データ指向バージョンでこれを行うには、すべてのプロパティに対して同じことを行う必要があります(ボールの場合は2回-半径と位置)。しかし、より多くのプロパティがある場合は悪化します。「ボール」ごとにインデックスを保持する必要があり、それを移動しようとすると、プロパティのすべてのベクトルで移動する必要があります。 それは、データ指向設計のパフォーマンス上の利点を損なうものではありませんか?

4
「ビッグデータ」の定義は何ですか?
あるの? 私が見つけることができるすべての定義は、データのサイズ、複雑さ/多様性または速度を説明しています。 ウィキペディアの定義は、実際の番号で見つけた唯一のものです ビッグデータサイズは、2012年現在、単一のデータセットで数十テラバイトから数ペタバイトのデータに至るまで、常に変化するターゲットです。 ただし、これは、次の段落で参照するMIKE2.0の定義と矛盾しているように見えます。これは、「大きな」データは小さく、3GBのデータのみを作成する航空機の100,000個のセンサーは大きいと見なされることを示しています。 IBMは次のように言っていますが: ビッグデータは、サイズの問題よりも単純です。 彼らの定義でサイズを強調しました。 オライリー "volume, velocity and variety"も同様に強調しています。よく説明されていますが、より詳細に、定義は他の人の再ハッシュであるようです-もちろんその逆です。 Computer Weeklyの記事タイトルは、「ビッグデータとは何か、それを使用して競争上の優位性を得るにはどうすればよいか」という記事をかなりうまく要約していると思います。 しかし、ZDNet は2012年から次のように勝ちました。 「ビッグデータ」は、IT市場の高性能コンピューティングニッチから浮上しているキャッチフレーズです...テクノロジーの10のサプライヤーからのプレゼンテーションを見てみると、15ほどの異なる定義が出てくる可能性があります。もちろん、各定義は、そのサプライヤの製品とサービスの必要性をサポートする傾向があります。想像してみろ。 基本的に、「ビッグデータ」は何らかの形で「ビッグ」です。 「大きな」とは何ですか?現時点で定量化できますか? 「大きな」が定量化できない場合、一般性だけに依存しない定義はありますか?


2
このタイプのリスト/マップのデータ構造はありますか?
おそらく私が欲しいものには名前がありますが、私はそれを知りません。LinkedHashMapJavaのa に似たものが必要ですが、指定されたキーに値がない場合に「前の」値を返します。 つまり、整数キー(私の場合は時間単位)によって格納されたオブジェクトのリストがあります。 ; key->value 10->A 15->B 20->C したがって、キー0〜9の値を照会すると、が返されnullます。特別な部分は、何か10 <= i <= 14を照会した場合、Aを返します。または、i> = 20の場合、Cを返します。 これにデータ構造はありますか?

2
通常、本番ソフトウェアのどこでDequeを使用しますか?
ソフトウェアアプリケーションでスタック、キュー、およびツリーを使用する場所についてはかなりよく知っていますが、Deque(Double Ended Queue)を使用したことはありません。通常、野生ではどこで遭遇しますか?キューと同じ場所にありますが、余分な不満がありますか?

3
データで微妙な関係を表現するにはどうすればよいですか?
「A」は「B」および「C」に関連しています。このコンテキストによって、「B」と「C」が関連している可能性があることをどのように示しますか? 例: 最近のブロードウェイのプレイに関するいくつかの見出しがあります。 アル・パチーノ主演のデビッド・マメットのグレンガリー・グレン・ロスがブロードウェイにオープン 「グレンガリーグレンロス」のアルパチーノ:批評家はどう思いましたか? アル・パチーノがブロードウェイのターンで不振のレビューを獲得 劇場レビュー:グレンガリーグレンロスはそのスターを激しく売っています グレンガリーグレンロス; ねえ、誰がKlieg Lightsを殺したの? 問題: これらのレコードに対してファジー文字列一致を実行すると、人間の読者がより大きなデータセットのコンテキストからそれらを選択できたとしても、いくつかの関係が確立されますが、他の関係は確立されません。 #3が#4に関連していることを示唆する関係を見つけるにはどうすればよいですか?どちらも#1に簡単に接続できますが、相互には接続できません。 この種のデータまたは構造に(Googlable)名前はありますか?どのようなアルゴリズムを探していますか? ゴール: 千の見出し、自動的にこれらの5つの項目がすべてであることを示唆しているシステムを考えると、おそらく同じことについて。 正直に言うと、プログラムを作成してから長い時間が経ち、この問題を適切に表現する方法に途方に暮れています。(それが理にかなっている場合、私は知らないことを知りません)。 これは個人的なプロジェクトであり、私はPythonで書いています。ヘルプ、アドバイス、およびポインタを事前に感謝します!

1
デシジョンツリーとニューラルネットワーク
この質問はして移行され、それがソフトウェア工学スタック所に答えることができるので、スタックオーバーフローから。 7年前に移行され ました。 銀行などの金融システムで不正行為を予測および予測するための機械学習構造を実装しています。カード番号、カード名義人名、金額、国など... どの構造がこの問題に最適かを判断するのに苦労しています。私は決定木の経験がありますが、現在、この種の問題に対してニューラルネットワークの方が良いかどうか疑問に思っています。また、他の方法が最適な場合は、気軽に私に教えてください。 各構造の長所と短所はどれで、どの構造がこの問題に最適でしょうか? また、この事実についてはわかりませんが、決定木は実行速度の点でニューラルネットワークよりも優れていると思います。このプロジェクトでは速度も重要な要素であるため、これは重要です。

2
アグリツリーとは何ですか?
古いHacker Newsのアイテムを調べてみると、あるユーザーからの投稿に出会いました。 (ソフトウェアルーティングテーブルで使用するような)境界サイズの基数トライをLRUリストと結合し、パターンから集約(すべてのIPの1,000の観測値から10.0.0.0/16など)を自動的に合成するAguriツリー挿入の。これらはトラフィック分析で最もよく知られていますが、ランタイムメモリ分析でも使用されています。 〜tptacek 調べてみることにしました 簡単なGoogle検索でF1ドライバーに移動します。 ウィキペディアで検索すると、インドの農業カーストと日本からのいくつかのアイテムにつながります Stack Overflow hits 0 results /programming//search?q=aguri site:stackoverflow.com/questions aguri だから私は最終的にそれをユーザーにリンクしました。彼が彼のブログにリンクを持っているのを見てください http://www.matasano.com/log/1009/aguri-coolest-data-structure-youve-never-heard-of/ しかし、それは死んでいます。 それでは、このAguriデータ構造とは何ですか?それが実際のデータ構造である場合、他のどこにも文書化されていないのはなぜですか?

6
基本的なデータ構造として(階層的な)ファイルシステムを使用する方法
私は独学で、CSの学位を持っていません。データ構造について学べば学ぶほど、OSの基本的なデータストレージ構造として、どのようにファイルシステム、ディレクトリ、およびファイルを抱えているのでしょうか? 私はそれがシンプルであることを理解していますが、最近ではネイティブで利用可能なオプションが増えているようです。私の知る限り、ファイルシステムの基本機能を改善する唯一のプロジェクトはReiserFSでした。ReiserFSでは、誰が、いつ、ファイルのどの行が変更されたかを知ることができました。 たとえば、ファイルにネイティブタグを付けて、画像、図、ワードプロセッシングドキュメント、コードリポジトリ全体をすべて単一のプロジェクトに属するものとしてタグ付けできるとしたら、本当に役立ちます。私はファイルシステムのパラダイムに固執しているので、それらをすべて単一のフォルダー/ディレクトリに入れることができることを知っていますが、それらがすでに異なるディレクトリに存在し、そこにとどまる必要がある場合はどうなりますか?私はそこにこれを行うことができるプログラムがあることを知っていますが、なぜそれらはファイルシステムにないのですか? RDBMSで得られるような、ファイルシステムの何らかのリレーショナル機能があれば便利です。それはVista / 7の一部であるはずだったが、それは機能リストからも外れたことを理解している。 確かに、どのプログラムでもバイナリファイルを保存でき、その中に必要なデータ構造を持つことができます。OSがファイルシステムの単純な階層を超えて、データを保存するより複雑な方法を提供できないのはなぜですか?

5
DelayQueueの実際の使用法[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 DelayQueueの実際の使用法は何ですか?解決するために設計された一般的な問題は何ですか?

3
プログラマが「データ構造」について話すとき、彼らは何を指しているのでしょうか?
プログラマは、「データ構造」について語るとき、彼らは話している抽象データ型のようなリスト、木、ハッシュ、グラフなど、? または、その用語には、複合型(クラスオブジェクト、構造体、列挙型など)やプリミティブ型(ブール、int、charなど)などのデータを保持する構造が含まれますか? プログラマーがこの用語を使用して複雑なデータ構造または抽象データ型を参照するのを聞いたことがありますが、データ構造のリストを提供するウィキペディアの記事には、定義に複合型とプリミティブ型の両方が含まれていますが、これは期待したものではありません理にかなっていますが)。 オンラインの周りを見たとき、私は唯一のような抽象データ型を参照するようプログラミングの意味での用語「データ構造」を参照して他の場所を参照コンピュータサイエンスのストーニーブルック大学の学部からこの講義いる状態を データ構造は、特定の抽象データ型の実際の実装です。 またはデータ構造に関するこのウィキブックでは、次のような文の用語を使用しています。 データ構造は高レベルの抽象化であるため、リストへのアイテムの追加、キュー内で最も優先度の高いアイテムの検索など、データのグループに対する操作を提示します それでは、プログラマが「データ構造」という用語を使用するときに、複雑なデータ構造または抽象データ型を参照するのを聞くのはなぜですか?プログラマーは、辞書の定義とは異なる用語の定義を持っていますか?

4
配列の代わりにリンクリストを使用するための具体的なルールは何ですか?
リンクリストは、要素の安易な挿入と削除が必要な場合、および要素がメモリ内で隣接していないことが重要でない場合に使用できます。 これは非常に抽象的であり、配列ではなくリンクリストを使用する理由を具体的に説明したいと思います。私はプログラミングの経験があまりないので、実際の経験はあまりありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.