二分查找(Scheme)
来源:互联网 发布:淘宝上日本代购哪家好 编辑:程序博客网 时间:2024/06/07 06:50
; Binary-search, 二分查找;======================================================================================(binary-search (vector 11 12 20 23 30 34) 23) ; 3(define (binary-search v e) (let search ((start 0) (end (- (vector-length v) 1))) (if (> start end) -1 (let* ((mid (div (+ start end) 2)) (piv (vector-ref v mid))) (cond ((> e piv) (search (+ mid 1) end)) ((< e piv) (search start (- mid 1))) (else mid))))))
(define vec ; oop表示的vector (lambda (n) (let ((v (make-vector n))) (lambda (i . m) (if (null? m) (if (eqv? 'len i) n (vector-ref v i)) (vector-set! v i (car m)))))))(define v (vec 10))
; ==========================================================================================================(define (pr v) ; 打印vector (let p ((i 0)) (if (< i (v 'len)) (begin (printf "~d, " (v i)) (p (+ 1 i))))))(let w ((i 0)) ; 初始化升序vector v (if (< i (v 'len)) (begin (v i (* i 3)) (w (+ i 1)))))(pr v)
; ============================================================================================================(define binary-search2 ; 对升序vector v 搜索x的坐标 (lambda (x v) (let while ((low 0) (high (- (v 'len) 1))) (if (<= low high) (let ((mid (div (+ low high) 2))) (cond ((> x (v mid)) (while (+ 1 mid) high)) ((< x (v mid)) (while low (- mid 1))) (else mid))) -1))))
0 0
- 二分查找(Scheme)
- 用Scheme来写二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 第1次实验——NPC问题(回溯算法、聚类分析)
- 第一次实验:NPC,回溯,八皇后问题
- WEB程序会话管理--HttpSession和Cookie
- 重载Comparator
- 门面模式 (Facade)
- 二分查找(Scheme)
- SQL笔记--第二章
- jsp连接数据库大全
- linux shell 知识点及问题总结
- 找不到action或者result
- Servlet
- 数据库HANG类故障
- 安卓理解之Activity
- JAVA File类 分析(四)