タグ

algorithmとjavascriptに関するamachangのブックマーク (5)

  • CodeRepos に nobjdb.js 追加 - 最速チュパカブラ研究会

    http://coderepos.org/share/browser/lang/javascript/nobjdb CodeReposに「nobjdb.js」というファイルを追加しました。これは、「syobocalplus」のタイトル検索のルーチンを抜き出し、ライブラリ化したものです。 オブジェクトの集合の中から、文字列検索の結果によって部分集合を抜いてくる処理…… と言うとわかりにくいですが、要するに 購読しているフィードのリストの中をタイトルで検索する(例: LDR) タグクラウドの絞り込み検索(例: はてブ) などという処理です。これを素朴に実装すると for (var i in list) if (list[i].name.indexOf(keyword) >= 0) { // マッチ! } という感じですが、nobjdb.jsでは、ひとつの文字列にタイトルをすべて突っ込んで、 タ

    CodeRepos に nobjdb.js 追加 - 最速チュパカブラ研究会
    amachang
    amachang 2007/10/20
    うおお。頭良い。オブジェクトのリストから長い文字列(0xffff区切り)とインデックスの配列にを作って検索を高速化。なるほっど。今今使えそうでワクテカ。
  • 最小完全ハッシュ関数の作り方 を JavaScript で - てっく煮ブログ

    JavaScriptActionScript/Flex ネタが続いているので、たまには JavaScript ネタを。はてブ経由で知った 最小完全ハッシュ関数の作り方 が面白そうだったのだけど、「最小完全ハッシュ関数」が何か分からないまま読み進めたら、やっぱり話が分からなくなってしまった。分からないまま JavaScript に移植。 /* 順列型の最小完全ハッシュ関数 */ function ChangeNumber(arr) { var work = arr.concat(); var hash = 0; // 階乗値テーブル作成 var FACTOR = [1]; for(var i=0; i { FACTOR.unshift(FACTOR[0] * (i+1)); } for(var i=0; i { hash += work[i] * FACTOR[i]; for (j=i+1;

    amachang
    amachang 2007/05/07
    JavaScript で順列のハッシュ関数を実装。「アルゴリズムの挙動は頭で考えるよりも、実際に手を動かしたほうが理解しやすい。」名言!
  • 絵を描いて学ぶ・プログラマのためのラムダ計算 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    JavaScriptで学ぶ・プログラマのためのラムダ計算」は、1回では述べ切らなくて、一段落付いたところで区切りました。これはかえって良かったですね、ブックマークやトラックバックでフィードバックが得られたので。 そのフィードバックなどをかんがみて、「残り=次回の話題」として予告した内容とはい違ってしまうのだけど、今回は、文章では伝わりにくい(前回うまく伝わらなかったと思える)ラムダ計算の大事なツボを、なんとか表現してみようと思います。 [このエントリーの内容はだいぶ前にほぼ出来上がっていたのだけど、ココに書いてある事情で、“お絵描き”がなかなか出来なかったのです。] ※印刷のときはサイドバーが消えます。 内容: 知っていて損はない 計算は身体的に理解しよう ラムダ項のツリー表示:準備 ラムダ項のツリー表示:描く! β変換に対応するツリーの描き換え もっとβ変換をやってみよう 計算現象を

    絵を描いて学ぶ・プログラマのためのラムダ計算 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 再帰クイックソートの可視化: Days on the Moon

    「いやなブログ - JavaScript でソートアルゴリズムを可視化」より。何も考えずに再帰処理のクイックソートの様子を逐次描画しようとするとこうなります。 function quickSort(data, begin, end, log) { if (begin >= end) return data; var pivotPos = begin; var pivot = data[pivotPos]; for (var i = begin + 1; i < end; i++) { if (data[i] < pivot) { var temp = data[i]; data[i] = data[pivotPos + 1]; data[pivotPos + 1] = data[pivotPos]; data[pivotPos] = temp; pivotPos++; } } log(da

    amachang
    amachang 2007/02/07
    純粋なプログラミングとしての面白い記事
  • Algorithm - O(n log(n))より速いsort : 404 Blog Not Found

    2006年12月03日01:45 カテゴリMath Algorithm - O(n log(n))より速いsort 404 Blog Not Found:javascript - Array#sortがオレquicksortより遅い!?はちょっとした驚きですが、実はデータの種類さえ限定できれば、builtin sortを出し抜くことはJavaScriptでなくてもそれほど難しくありません。 例えば、ソートしたい対象が密集した整数値で、メモリーがふんだんにある場合には、bucket sortがあります。これを使えば、Perlにおいてすらbuilt-inを簡単に出し抜けます。 % perl bucket.pl 10000 Benchmark: running bucket, builtin, quick for at least 3 CPU seconds... bucket: 3 wallc

    Algorithm - O(n log(n))より速いsort : 404 Blog Not Found
  • 1