タグ

algorithmとprogrammingに関するusadamasaのブックマーク (5)

  • プログラマの採用面接で聞かれる、データ構造とアルゴリズムに関する50以上の質問 | POSTD

    情報科学科の卒業生やプログラマの中には、UberやNetflixのような新興企業や、 AmazonMicrosoftGoogle のような大企業や、InfosysやLuxsoftのようなサービスを基とする企業で、プログラミング、コーディング、ソフトウェア開発の仕事に就きたいと考える人が大勢います。しかし、実際にそういった企業で面接を受ける場合、大半の人が プログラミングに関してどのような質問をされるか 見当もつきません。 この記事では、 新卒生からプログラマになって1〜2年までの 経験値が異なる人たち向けに、それぞれの プログラミングの面接でよく聞かれる質問 をいくつか紹介していきます。 コーディングの面接では、主に データ構造とアルゴリズムに基づいた質問 がされますが、 一時変数を使わずにどのように2つの整数をスワップするのか 、というような論理的な質問もされるでしょう。

    プログラマの採用面接で聞かれる、データ構造とアルゴリズムに関する50以上の質問 | POSTD
  • みんなのデータ構造

    紙書籍をお届けします(PDFがついてきます) PDFのみ必要な場合は、こちらからPDF単体をご購入ください 紙書籍は通常、ご注文から2~3営業日で発送します 年末年始や大型連休など、1週間から10日程度、配送のお休みをいただく場合があります。詳しくはお知らせをご覧ください 配列、リスト、木、グラフ、それぞれの理論的な特性を知り、実装まで理解するためのガイドブック Pat Morin 著、堀江 慧・陣内 佑・田中 康隆 共訳 288ページ A5判 電子書籍の形式:PDF ISBN:978-4-908686-06-1 2018年7月20日 第1版第1刷 発行 正誤情報 データの格納方法を工夫するだけで、魔法みたいにアルゴリズムが導出できる。うまくデータを整頓するだけで、画期的に計算が速くなる。仕事で直面している問題がなかなか解決しないのは、問題に対する適切なデータ構造を知らないから、というだけ

    みんなのデータ構造
  • Dive into Apache Arrow(その1) - KaiGaiの俺メモ

    Arrow_Fdwを作るモチベーション 昨年、かなり頑張ってマルチGPUや拡張I/Oボックスを使用してシングルノードのクエリ処理性能10GB/sを達成できた。ただ一方で、PG-StromがPostgreSQLのデータ構造をそのまま使えるという事は、トランザクショナルに蓄積されたデータをそのまま使えるという手軽さの一方で、どうしても行指向データに伴う非効率なI/Oが処理速度全体を律速してしまうという事になる。 昨年の10月頃から直接お会いした人にはお話していたが、現在、PG-StromでApache Arrow形式のファイルを扱うようにするための機能強化に取り組んでいる。目標としては、3月末には動かせる状態にしたいと思っているが。 Apache Arrow形式とは、Sparkの人がよく使っているデータ形式で、大量の構造化データを列指向で保持する事ができる。特定の行を更新したり削除したりといっ

    Dive into Apache Arrow(その1) - KaiGaiの俺メモ
  • メモリとスタックとヒープとプログラミング言語 | κeenのHappy Hacκing Blog

    κeenです。 今回の話は別にRustに限ったものではないのですが、よくRustを始めたばかりの人がスタックとヒープが分からないと言っているのをみかけるので少しメモリの話をしますね。 厳密な話というよりは雰囲気を掴んで欲しいという感じです。 メモリは配列 プログラム(プロセス)のメモリには実行するプログラム(機械語)やグローバル変数/定数、関数の引数やローカル変数、その他プログラムで使うデータ領域などを置きます。 プロセスに割り当てられるメモリというのは、1つの巨大なのっぺらな配列みたいなものです。サイズも決まってます。64bit OSなら2^64 byteです。 0 2^64 +--------------- ----+ | | | | | ~~ | | +--------------- ----+ これは仮想的なメモリなので実際の物理メモリに2^64 byteの配列がドンと確保される訳

    メモリとスタックとヒープとプログラミング言語 | κeenのHappy Hacκing Blog
  • クリティカルセクション

    並行プログラミング(Concurrent Programming)では、並行して動くプログラム(プロセスやスレッド)が種々の資源(メモリ、ファイル、DB、周辺装置・・・)を共有することが多い。これら共有資源をプログラムが取り合う局面をクリティカルセクション(Critical Section)という。クリティカルセクションは並行プログラミングの最も難しい部分であり、バグが生まれる原因にもなりやすい。以下、具体例で説明しよう。 鈴木さんが山科信用金庫の口座からCDで5万円引き出すとしよう。CDのシステム側では、まず預金残高が5万円以上あるかどうかを調べ、okならば預金残高から5万円引くと共に、1万円札を5枚出すことになる。 上記を擬似的なプログラムで見てみよう。 X(メモリ) ← 預金(DB) IF X > 5万円 THEN X ← X - 50,000 預金(DB) ← X ... 1.~4

    usadamasa
    usadamasa 2011/09/29
    ここで、読者の中には次のような疑問を持つ人がいるかもしれない。コンピュータのスピードを考えると、上記のようにタイミング良く処理が重なるなんてことは、たとえ意図的に試みても現実には起こり得ないのではない
  • 1