zoukankan      html  css  js  c++  java
  • 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)))))))
    insert sort的实现简单讲就是先将除了第一个元素以外的元素排好序以后将第一个元素插入其中

    (define (insert-sort p lst)
      (define (insert-to-sorted e l)
        (if (null? l)
          (cons e '())
          (if (p e (car l))
            (cons e l)
            (cons (car l) (insert-to-sorted e (cdr l))))))
      (if (null? lst)
        '()
        (insert-to-sorted (car lst) (insert-sort p (cdr lst)))))

    内部过程insert-to-sorted是将元素e插入到有序表l中

  • 相关阅读:
    linux权限掩码
    主机跨网通信时的字节序转换
    鸽巢原理-poj3370
    鸽巢原理
    JS面向对象关键词
    Less 命令技巧,从底部网上看
    软件工程概论第七章
    软件工程概论第八章
    软件工程概论第六章
    软件工程概论第五章
  • 原文地址:https://www.cnblogs.com/mathlover/p/2710592.html
Copyright © 2011-2022 走看看