2006-01-12から1日間の記事一覧

UVa

動的計画法の練習と思ってやってみたら面白いので4問解いてみた。 104: Arbitrageではきちんと読んでなくてハマりまくった。これは正にFloydのアルゴリズムなのだが、途中の道を覚えておくためにテーブルを3次元に拡張した。

今日のアルゴリズム

ソート ヒープソート ビンソート 基数ソート 集合 priority queue(半順序の付いた木による実装) 2-3木 有向グラフ Dijkstraのアルゴリズム Floydのアルゴリズム dfs dagの一列化 強成分分解 無向グラフ プリムのアルゴリズム クラスカルのアルゴリズム αーβ…

qsort

in Ruby def sort(f, array) return [] if array.empty? pivot = array[0] before = sort(f, array[1..-1].delete_if { |x| not f.call(x, pivot) }) after = sort(f, array[1..-1].delete_if { |x| f.call(x, pivot) }) return (before << pivot).concat(af…

内部defineの振舞い

本日のSICP読書会で出た話題。問題4.19。 ubuntu% cat test.scm (display (let ((a 1)) (define (f x) (define b (+ a x)) (define a 5) (+ a b)) (f 10))) (display "\n") ubuntu% ./sscm test.scm 16 ubuntu% gosh test.scm 20 ubuntu% guile -s test.scm …