タグ

algorithmとC++に関するruiccのブックマーク (2)

  • wat-array : wavelet木を利用した高速配列処理ライブラリ - Preferred Networks Research & Development

    こんにちは岡野原です。もう年末になりましたが、私の今年はこれからです。 wat-arrayというC++ライブラリを公開しました。 google code:wat-array wat-arrayはフリーソフトウェアであり、修正BSDライセンスに基づいて利用できます. wat-arrayはwavelet木と呼ばれるデータ構造を利用することにより、配列上の様々な処理を効率的に行うことができるC++ライブラリです。 例えば、 – 任意の連続した範囲内にある最大値 /最小値 / k番目に大きい値, またそれらの出現位置、頻度 – 任意の連続した範囲内にある指定した文字cの出現回数、c未満/より大きい文字の出現回数 – 任意の文字のi番目の出現位置 といったものを求めることが全て範囲長、入力長に対して定数時間で行うことができます。 例えば長さ10億、値の範囲が0から1000万であるような配列A中のA[

    wat-array : wavelet木を利用した高速配列処理ライブラリ - Preferred Networks Research & Development
  • Boehm GCを使おう

    はじめに CやC++である程度大きなプログラムを書く場合,最大の問題点は メモリ管理である.複雑なプログラムの場合,必要なメモリの量を あらかじめ見積っておくのが難しいから,メモリが必要になった 時点でメモリを確保し,不要になったらそれを解放するという プログラミングスタイルが一般的だ.Cで言えばこんな感じだ. char *x; ... x = (char*)malloc(n*sizeof(char)); ... x を使って仕事をする ... free(x); このプログラミングスタイルの問題点は,おおまかに言って こんなところだろう. free(x) を忘れると,プロセスがどんどん大きくなってしまう. free() してはいけないものを間違ってfree()する(たとえば,同じ メモリを2回 free() してしまうとか)と,その free() の中でなく, 全然違う場所でエラーが発生す

  • 1