計算機プログラムの構造と解釈のまんが記録。
環境モデルの適用の仕方その1。
Saturday, March 19, 2011
Monday, March 14, 2011
Saturday, March 5, 2011
Schemeでクイックソート
バブルソートを作ったからには、もちろんクイックソート(quick sort)も作らないとね。
まあ昨日は酒が入ってたしね。
(define (cat l1 l2) (cond ((null? l1) l2) (else (cons (car l1)(cat (cdr l1) l2))))) (define (q-sort li) (define (split in lo hi mp) (cond ((null? in)(cat (q-sort lo)(cons mp (q-sort hi)))) ((> mp (car in))(split (cdr in)(cons (car in) lo) hi mp)) (else (split (cdr in) lo (cons (car in) hi) mp)))) (cond ((null? li) li) (else (split (cdr li) '() '() (car li)))))昨日のバブルソートよりはだいぶ見やすいプログラムになってる。
まあ昨日は酒が入ってたしね。
ラベル:
programming
Friday, March 4, 2011
Schemeでバブルソート
「数学ガール」にバブルソートが出てきたので、何となく書いてみた。
とりあえずやっつけ。
とりあえずやっつけ。
(define (list-count l) (cond ((null? l) 0) (else (+ 1 (list-count (cdr l)))))) (define (one-path l) (cond ((or (null? l) (null? (cdr l))) l) ((> (car l)(cadr l))(cons (cadr l) (one-path (cons (car l)(cddr l))))) (else (cons (car l)(one-path (cdr l)))))) (define (b-sort l num) (cond ((zero? num) l) (else (b-sort (one-path l) (- num 1))))) (define (bubble-sort l) (cond ((null? l) l) (else (b-sort l (- (list-count l) 1)))))
ラベル:
programming
Subscribe to:
Posts (Atom)