タグ

配列とプログラムに関するiwwのブックマーク (8)

  • libgit2の内部データ構造: strmap - Qiita

    libgit2の内部ではハッシュテーブルが使われていたりしますが、C言語標準ライブラリにはハッシュテーブルはありません。ここで公開されている外部のライブラリkhash.hをラップして作られています。コードリーディングメモです。 khashとは何か MITライセンスですが、著者はプロフィールを隠しています。 このブログはanonymousなブログだ ... 俺は完璧主義者だ。もし、読者がこのブログを書いている私を知っているなら、 私は出来る限りすべてを完璧にし続けたいと思うだろう。 それは私を神経質にして、何を書くにしても疲れ果ててしまうだろう。 もし読者が私が誰かを知らないのであれば、自分を解放することができて、 心が赴くままに書き続けられるだろう。 (意訳) こういう厨二病な感じ、嫌いじゃないです。とはいえ、ちょっと古いですがここのエントリーに書かれているベンチマークの結果を見ると、トッ

    libgit2の内部データ構造: strmap - Qiita
  • 中央値の中央値 - Wikipedia

    中央値の中央値(ちゅうおうちのちゅうおうち、英: median of medians)とは、クイックセレクトに基づく選択アルゴリズムのことである。k番目に大きい要素を選択するための最悪計算時間が線形になることが特徴である。 このアルゴリズムでは、最初におおよその中央値を線形時間で探索し、その値をクイックセレクトでのピボット値とする。つまり、(漸近的な)おおよその中央値選択アルゴリズムを使って、(漸近的な)一般値選択アルゴリズムを構築したものである。 このアルゴリズムは、マヌエル・ブラムら[1]によって開発されたもので、著者の名字の頭文字を取ってBFPRTとも呼ばれる。この原著では中央値の中央値アルゴリズムをPICKと呼び、クイックセレクトをFINDと呼んでいた。 概要[編集] クイックセレクトは分割統治法であり、計算の各段階で、残っている探索対象の要素が個の場合にの計算時間を必要とする。そ

  • 軽い気持ちでLinkedListを使ったら休出する羽目になった話 - Qiita

    ざっくり言うと リスト構造のデータに対してランダムアクセスはしちゃだめだぞ。お兄さんとの約束だ! 発端 数年前に他部署の支援で作ったJavaのシステムに、ちょっとデカめのデータを突っ込んだらありえないほど遅いので助けてくれ、と連絡が入った。 まぁクエリとかインデックスをちょっと見れば直るっしょ・・・と鼻をほじりながら支援に向かった。 処理内容 遅い部分の処理は以下のようなものであった。 処理対象のデータをListで受け取る。 それをforループで1件ずつ前処理する。 処理結果をオブジェクトに格納し、ORマッパーでDBにINSERTする。 これだけ? そう、これだけだ。並列処理なんて高級なことはもちろんやってない。 インフラ調査 処理中のサーバのようすを調査する。今回のインフラは典型的な3層3サーバ構成。 WEBサーバはなにもかもが余裕。 APサーバではCPUを1つ使い切っている。 14コア

    軽い気持ちでLinkedListを使ったら休出する羽目になった話 - Qiita
  • 文字列リテラルでの初期化 (1) - とくにあぶなくないRiSKのブログ

    cppllでレベルの低い質問が出てるかと思ったら,cppll_noviceの方でちょっと安心しました。 # 暴言*1 →みんなのHappyコミュニティ! freeml[フリー・エムエル] - メッセージ cppll_novice - 1586 この質問にC言語として答えてみましょう。 まず,前半から考えましょう。 char dest[dest_size] = { 0 };と書くと、配列の要素が全て0になりますけど この根拠は「JIS X3010:2003 6.7.8 初期化」にあります。P96には以下の件(くだり)が。 明示的に初期化されないすべての部分オブジェクトについては,静的記憶域期間をもつオブジェクトと同じ規則で暗黙に初期化する。 で,「静的記憶域期間をもつオブジェクトと同じ規則」って何?となるのですが,これはP95で暗黙の初期化について, b) そのオブジェクトの型が算術型の場合

    文字列リテラルでの初期化 (1) - とくにあぶなくないRiSKのブログ
    iww
    iww 2017/07/07
    構造体または配列の先頭の要素を0に設定し、残りの部分を0で埋める。 という意味になるので、 {} だけの方が行儀が良いと思う
  • SIerの下請け開発者ってレベル低すぎない? - UXエンジニアになりたい人のブログ

    ネット上ではSIer批判=技術のことをわかっておらずプログラムも書けずPMも出来ない非効率でダメダメな上流工程と、 人月単位での労働力提供という業界の慣習に縛られ、持ち前の優秀な技術力・知識を生かせず非効率な作業を強いられているかわいそうな下請け開発者、という構図が確立されているように思います。 自分が関わるまでは、まあそうなんだろうなと思っていましたが、しかし実際にそういう立場のひとと関わりをもつにつれて、どうもそうではないのではないかと思うようになりました。このあたりの実情を書いていこうと思います。 なお、先に言っておきますが記事で書くことは、上流工程がどうのとか、業界の多重請け負い構造がどうのとか、給料が安くてとか労働条件が過酷でとか、そういう話とは全く関係がなく、純粋にプログラミングのスキルの話だけです。 対象はおもに詳細設計、実装UTだと思ってもらえれば。外部仕様が決まった状態

    SIerの下請け開発者ってレベル低すぎない? - UXエンジニアになりたい人のブログ
    iww
    iww 2017/02/13
    『99っていったいどこから出てきた?』 なるほどちゃんと考えないとこの99はどこから来たのかわかりにくいな
  • うわ怖い - がるの健忘録

    元ネタは、某所の書籍でみた、こんなコード。 foreach($data as $key => $val) { $$key = $val; } 見た瞬間から色々気になってはいたんだけど。 ふと思って試した実験コードの内容が、思ったよりもちょっとアレゲだったので共有。 まずは、初手の実験コード。 <?php $data = array(); $data['test'] = '1'; $data['_test'] = '2'; $data['0test'] = '3'; $data['te-st'] = '4'; $data['te-st'] = '5'; foreach($data as $key => $val) { $$key = $val; } $awk = get_defined_vars(); unset($awk['_SERVER']); unset($awk['_POST']);

    うわ怖い - がるの健忘録
  • 目的別/連想配列 - 俺専用 JavaScript Reference

  • Error Not Found. Mr.インクルード

    518 :名前は開発中のものです。:2010/08/29(日) 22:47:44 ID:9rTjBNB+ #include "Hoge.cpp" こんな事できるんだ 519 :名前は開発中のものです。:2010/08/29(日) 23:02:09 ID:m5UOgFEg >>518 単にファイルの中身を挿入してるだけだからね。 #include "hoge.txt" でもおkよ。 CSVとかデータを豪快にいれたこともあったなこんなして、 int aa[] = { #include "hoge.csv" }; 520 :名前は開発中のものです。:2010/08/30(月) 03:50:37 ID:9bcjBgda >>519 言われてみれば確かにできるんだけど なかなか実際にはその発想に至らない・・ 521 :名前は開発中のものです。:2010/08/30(月) 09:57:59 ID:81

  • 1