2012年10月2日

quick sort and insert sort

摘要: quick sort的思想是使用一个元素将表分成2个部分,其中一个部分是比改元素小,另外一部分是大于等于该元素。在scheme里面实现起来相当直观(define (qsort p lst) (if (null? lst) '() (let ((e (car lst)) (rest (cdr lst))) (let ((less (filter (lambda (x) (p x e)) rest)) (great (filter (lambda (x) (not (p x e))) rest))) (append (qsort p less) (cons e (qsort p great 阅读全文

posted @ 2012-10-02 22:25 mathlover 阅读(254) 评论(0) 推荐(0) 编辑

merge sort in scheme

摘要: merge sort的思想很简单,首先将表均匀分成2份,然后每份都是递归使用merge sort来排序,最后使用一个线性合并的方法来合并两个有序表。为此我们首先定义的是split-evenly,用来切分一个list(define (split-evenly lst) (if (null? lst) (list '() '()) ;空表的话返回两个空表 (let* ((h (car lst)) (rest (cdr lst)) (len (length lst)) (sp (split-evenly rest)) (first (car sp)) (second (cadr sp 阅读全文

posted @ 2012-10-02 22:20 mathlover 阅读(221) 评论(0) 推荐(0) 编辑

导航