タグ付けされた質問 「algorithms」

数学とコンピュータサイエンスでは、アルゴリズムは、関数を計算するための明確に定義された命令の有限リストとして表現される効果的な方法です。アルゴリズムは、計算、データ処理、および自動推論に使用されます。

4
データ構造を使用するアルゴリズムとデータベースを使用するアルゴリズムの違いは何ですか?
一般的な質問 データ構造を使用するアルゴリズムとデータベースを使用するアルゴリズムの違いは何ですか? いくつかのコンテキスト これはしばらくの間私を悩ませてきた質問であり、私はそれについて説得力のある答えを出すことができませんでした。 現在、もちろん、データ構造に深く関わるアルゴリズムの理解を深めることに取り組んでいます。これらは、バッグ、キュー、スタック、優先度キュー、ヒープなどの基本的な構造です。 また、データベースを日常的に使用して、エンドユーザーによって処理および送信された、またはプログラムによって処理されたデータを保存します。データベースのテーブルに基づいて生成される独自のデータ構造を持つDALを介して、データを取得して送信します。 私の質問は、データベースを使用してデータをソートして、昇順/降順で注文したデータを返送するか、データを取得してロジックにロードし、このデータを優先度キューで処理し、ヒープソートするオプションがあるときに発生しますそれのすべて。または、レコードのサブセットをロードするのではなく、データベースを使用してレコードを検索し、バイナリ検索のようなものを使用して、興味のあるレコードを見つけることもできます。 私の考えでは、通信は高価であるため、送信する前に、データベース側でできるだけ多くの操作を実行しようと思います。また、データベースのデータではなく、独自のロジック内で厳密に定義されたアルゴリズムとデータ構造を使用してデータを処理するのはいつですか。 だからここに質問があります... ご質問 データ構造とデータベースの違いは何ですか? データベースのロジックではなく、独自のロジック内でのみ定義されたデータ構造を使用するアルゴリズムをいつ使用しますか? @Harveyの投稿:データベース内のメソッドを使用すると、独自のロジック内のメソッドよりも効率が悪くなりますか? @mirculixxの投稿:メソッドを効率的にするものは何ですか? @Harveyポスト:データベースで行うよりもデータ構造でデータを処理する方が高速ですか? 明確化 @Grant post:私が通常使用するデータベースはリレーショナルであり、これらの質問はそれらを使用することから生まれています。ただし、これらの質問はどの永続フレームワークにも適用できると思います(フレームワークとは、最も一般的な意味での意味です)。 特定の文脈がないと答えが難しいことは知っています。考えられる食べ物、アドバイス、または議論のポイントは、主に私が探しているものであり、最もありがたいです!

5
優れた、迅速なアルゴリズムの更新とは何ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、議論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 数週間以内にプログラミングのインタビューが来る予定です。少し前にアルゴリズムのクラスを受講しましたが、いくつかの重要な概念を忘れている可能性があります。 スピードを取り戻すためのアルゴリズムに関する非常に短い本(<100ページ)のようなものを探しています。ソートアルゴリズム、データ構造、およびその他の必須要素を含める必要があります。それは本である必要はありません...ちょうど一週間で巻き込まれるための素晴らしい方法を探しています。 簡単なアルゴリズムの紹介や復習に最適なツールは何ですか?

4
半径内の家を見つける
インタビュー中に、次のことを尋ねられました。特定の距離内(たとえば、ユーザーが20マイル以内にあるすべての家を検索したい場合など)に現在市場に出ている(つまり、販売中の)すべての家をリストする不動産アプリケーション。このタイプのサービスを構築するために、アプリケーション(データ構造とアルゴリズムの両方)をどのように設計しますか? 何か案は?どのように実装しますか?地理関連のことをしたことがないので知らないと言った。

5
巨大なファイルに対するgreppingのパフォーマンスの向上
300,000行を超えるFILE_Aと3,000万行を超えるFILE_Bがあります。FILE_Aの各行をFILE_Bで確認し、grepの結果を新しいファイルに書き込むBashスクリプトを作成しました。 このプロセス全体に5時間以上かかります。 スクリプトのパフォーマンスを向上させるにはどうすればよいですか? grep -F -m 1grepコマンドとして使用しています。FILE_Aは次のようになります。 123456789 123455321 FILE_Bは次のようになります。 123456789,123456789,730025400149993, 123455321,123455321,730025400126097, したがって、Bashではwhile、FILE_Aの次の行を選択して、FILE_Bでそれを調べるループがあります。パターンがFILE_Bで見つかったら、result.txtファイルに書き込みます。 while read -r line; do grep -F -m1 $line 30MFile done < 300KFile

3
適切な次の単語の予測を実現するために使用できるアルゴリズムは何ですか?
「次の単語の予測」を実装する良い方法は何ですか?たとえば、ユーザーが「私は」と入力すると、システムは次の単語として「a」と「not」(またはおそらく他の人)を提案します。私はマルコフ連鎖といくつかのトレーニングテキストを使用して(明らかに)これを達成する方法を知っています。しかし、私はこの方法が非常に制限的であり、非常に単純なケースに適用されることをどこかで読みました。 ニューラルネットワークと遺伝的アルゴリズムの基本を理解しています(深刻なプロジェクトで使用したことはありませんが)。適切なトレーニングテキスト(たとえば、新聞記事やユーザー自身の入力)が与えられると、次の単語に対して合理的に適切な提案を行うことができるアルゴリズムがあるのでしょうか。アルゴリズムではない(リンクしている)場合は、この問題を攻撃するための一般的な高レベルの方法を歓迎します。

4
現在、ソフトウェアエンジニアリングのための最新の標準化された適性テストはありますか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ソフトウェアエンジニアリングスタック交換のトピックになるようにします。 6年前休業。 バックグラウンド 私はソフトウェアエンジニアとして働いており、来年かそこらの新しい契約を模索している最中です。私の検索では、本日以前に質問したこのよくある質問に示されているように、いくつかの不条理な技術面接に耐えています。 私が尋ねられた質問がほとんどいつもばかげているわけではなかったとしても、それにもかかわらず、さまざまな契約の機会のために何度もそれらに答えるのはうんざりするでしょう。 そのため、実際にソフトウェアの専門家が受けられる標準化された試験を受けることで、不合理な技術面接の質問(つまり、オタクのいじめ)の代わりに面接担当者が参照できる共通のスコアカードが提供されると考えました。 質問 働く専門家が受験できる標準化されたソフトウェアエンジニアリング適性テスト(SEAT ??)はありますか? そこにそのような試験がない場合、どの質問またはトピックをカバーする必要がありますか? 追加の考え 質問やトピックを提案する場合は、標準的な適性テストのポイントとなるため、現代の開発慣行や労働力の現実的なニーズに関連する質問やトピックに焦点を当てることに留意してください。言い換えれば、道化師横断の質問はありません。

1
グラフィックプログラマーは、イメージを変更しない頂点のレンダリングをどのように処理しますか?
したがって、タイトルは少し厄介です。背景を説明してから、質問をします。 背景:私はWeb GISアプリケーション開発者として働いていますが、暇なときに地図のレンダリングを試したり、データ交換フォーマットを改善したりしています。私は2D空間でのみ作業します。 私が遭遇した興味深い問題の1つは、小さなスケールでポリゴンをレンダリングしている(ズームアウトした)ときに、頂点の多くが冗長になることです。極端なケースは、1つのピクセルのみを占める500,000の頂点を持つポリゴンがある場合です。このデータをブラウザーに送信する場合は、これらの頂点の〜499,999を省略しても意味があります。これを実現する1つの方法は、サーバーで画像をレンダリングし、それをPNGとして送信することです。ただし、インタラクティブにできるように、データをブラウザに送信してSVG(またはキャンバス、またはwebgl)でレンダリングできるようにする場合もあります。 問題:最新の地理データセットを使用すると、SVGのレンダリング機能を非常に簡単にオーバーロードできることがわかります。これらの制限に対処するために、特定の縮尺とマップ範囲(および必要に応じて、既知のマップピクセルの幅と高さ)のデータセットを視覚的にロスレスで削減する方法を理解しようとしています。 Douglas-Peuckerアルゴリズムを使用しただけでデータサイズが大幅に削減され、ポリゴンを1ピクセル以内に収めることができたと思います。残念ながら、Douglas-Peuckerはトポロジを保持しないため、ポリゴン間の境界線のレンダリング方法が変更されました。他のアルゴリズムを簡単に試して目的に適応させることはできませんでしたが、CS /アルゴリズムの背景があまりなく、見た場合に認識できない可能性があります。

6
GPUでの実行から恩恵を受けた汎用アルゴリズムの例?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 5年前休業。 CPUよりもGPUで1桁速く実行できることが証明されている(非グラフィック関連の意味の)汎用アルゴリズムの例を探しています。これらの例を使用して、GPUに実装できる他のアルゴリズムについて創造的に考えます。

3
トーナメントの対戦をスケジュールするための既知のアルゴリズムはありますか?
トーナメントのスケジューリングアルゴリズムがすでに存在していて、それを使用したり、少しだけ適応したりできるかどうか疑問に思っています。 これが私の要件です: 可変数のチーム/クラブに属する可変数の対戦相手は、それぞれ対戦相手とペアにする必要があります 2人の対戦相手が同じクラブに所属することはできません プレーヤーの数が奇数の場合、そのうちの1人がランダムに選択され、さようならを取得します この種の要件セットに関連するアルゴリズムがあれば幸いです。 編集:これを最大1回実行するだけで、トーナメントの最初の「ラウンド」の対戦を作成できます。
10 algorithms 

7
N女王、X by Y理事会決定問題インタビュー質問
今日のインタビューで次の質問をされて以来、ずっと考えていました。私はそれに答えることができず、解決策をオンラインで見つけることができませんでした。 寸法がX x YとNのクイーンのチェス盤を想定して、これらのクイーンを互いに攻撃できないように盤上に配置できるかどうかを判断します。 2クイーンの2 x 3ボードにはソリューションがあるため、アルゴリズムはtrueを返します。 Q . . . . Q たとえば、このパズルのプログラミング手法を探しています。たとえば、紙の上で解決する方法だけではありません。

2
BツリーとRツリーの比較-リンクされた一連のリンクされたリストだけではありませんか?
私はBツリーにかなり精通しており、主にデータベースに電気、エアコン、ハードドライブスペースを十分に供給し続ける必要があります。二重(doubl [ie、ey]?)リンクリストに関連付けます。 今日、昼食時の開発者の1人がRツリーについて言及しました。 ウィキペディアに飛び乗って読み始めました。それは背の高いBの木のようなひどい音に聞こえました。残念ながら、数学の背景が深いと、同僚の何が話しているのか理解するのが難しくなります。 誰かがBツリーとRツリーのいくつかの違いを明確にしてくれるといいのですが。私はおそらくとにかくみんなに尋ねることになるでしょうが、彼らが私の質問に答えるという保証はありません。おそらく彼らは神についてとりとめないようになるでしょう何を知っています。。。

4
インタビューの質問ランキングFizzBu​​zz(1)、malloc(10)の実装[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 4年前休業。 次のインタビューの質問の難しさについて、ご意見をお聞かせください。 O(n)時間の整数の配列で、合計が最大の連続するサブ配列を見つけます。 この些細な響きの問題は、ジョンベントレーがプログラミングパールで有名にしたもので、アルゴリズムの設計手法を示すために使用されています。 1〜10のスケールで、1はFizzBu​​zz(またはHoppityHop)テストで、10はC stdlib関数malloc()の実装です。上記の問題をどのようにランク付けしますか? この質問に最もよく答えられるのは、Programming Pearlsを読んで自分でこの問題を解決しようとした人だと思います。「プログラミングの真珠」は、そうでない人のやる気を引き出すために、「プログラミングブックのトップ10」リストで何度も取り上げられます。 いくつかのコメントはより良い評価を得るために役立つかもしれません: malloc()の実装は、見かけほど手ごわいものではありません。たとえば、K&RのCプログラミング言語を参照してください。マイクロソフトで時々尋ねられます。 CLRSによる問題解決の観察:特に時間の制約の下で作業する場合は、明確に提示された解決策を検証するよりも、問題を最初から解決する方が難しいことがよくあります。

10
手書きのループよりもアルゴリズムを優先しますか?
次のうち、読みやすいものはどれですか。手書きのループ: for (std::vector<Foo>::const_iterator it = vec.begin(); it != vec.end(); ++it) { bar.process(*it); } またはアルゴリズムの呼び出し: #include <algorithm> #include <functional> std::for_each(vec.begin(), vec.end(), std::bind1st(std::mem_fun_ref(&Bar::process), bar)); std::for_eachこのような単純な例を考えると、本当に多くのコードがすでに必要であるため、本当に価値があるのでしょうか。 この問題についてどう思いますか?
10 c++  algorithms 

2
Key-Valueストレージのアイテムを期限切れにするアルゴリズムは何ですか?
現在のKey-Valueストレージがアイテムの「有効期限」を実装する方法について考えていました。現在、私は私の心の中に2つのバリアントを持っています: それらは何もしません(期限切れのデータを保持します)。たとえば、何らかのキーでGETした場合にのみチェックします。ここでの問題は、メモリが限られている場合、期限切れのアイテムが削除されないことです。 それらは、「期限切れが最も早い」ことを可能にするために追加のデータ構造を保持します。私はそれがこのようなものでできることがわかります: storage_data = dict(key -> [value, expire_timestamp]) expire_tree = SomeBinaryLikeTree(expire_timestamp -> [keys])

1
サンプルデータを使用してアルゴリズムを適切に文書化する方法
アルゴリズムのドキュメントには何を含める必要があるのでしょうか。従うべき適切なガイドラインが見つかりません。含めることを心に留めています アルゴリズムの要約 アルゴリズムの説明 フローチャート 疑似コード 入力データセットのサンプル(複数) 出力データ 単体テスト 実験 クライアントは次のような文書を要求します。自社の数値に自信を持たせるとともに、プロセスを見込み顧客に説明して、計算をチェックおよび検証するための手順を踏んでいることを顧客に説明します。 そのようなドキュメントはどのように見えますか?(PDFの例) このドキュメントに何を追加しますか? 私が列挙したものはそれで良いですか、またはこれはどういうわけか異なって文書化されるべきですか? このようなドキュメントサンプルをGoogleでどのように検索しますか?

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