加载中
【算法】6 比较排序之外学习新的线性时间排序

回顾比较排序 相信阅读过前面5篇博文的童鞋们已经发现了“在排序的最终结果中,各元素的次序依赖于它们之间的比较”。于是乎,这类排序算法被统称为”比较排序“。 比较排序是通过一个单一且...

【算法】4 五张图带你体会堆算法

什么是堆 堆(heap),是一类特殊的数据结构的统称。它通常被看作一棵树的数组对象。在队列中,调度程序反复提取队列中的第一个作业并运行,因为实际情况中某些时间较短的任务却可能需要等待...

【SICP练习】96 练习2.69

练习2.69 如题目中所说,传入给successive-merge的参数是一个有序的集合。而这个函数将通过不断的归并得到最终的一个元素。如果传入的集合为0,也就是说返回的表应该是空表。如果传入的集合为...

【SICP练习】54 练习2.22

 练习2.22 题目中Louis的第一个程序将items中的元素一个一个的取出来然后平方然后”推“到answer中。而我们在上一题中则是迭代结构,是将元素平方后”推“到一个大盒子中,而大盒子里又有...

2015/09/08 21:46
0
【算法】8 图文搭配诠释三种链表及其哨兵

三种链表的介绍 原谅我拙劣的绘图能力,花了半天终于还是决定从网上找来了这三张图,因为环形链表的弧形箭头难以完美的展现出来。 以下3张图片来自Wikipedia。 大家看着图片应该也都知道这分...

【SICP练习】58 练习2.28

 练习2.28 这道题是要我们找出树的所有树叶,参考第73页下面的count-leaves,当遍历这个树的时候也会有这三种情况:元素为空,元素不成对,以及元素成对。根据这个关系可以写出fringe如下...

2015/09/08 21:50
3
【Scheme归纳】4 高阶函数

高阶函数的介绍 高阶函数的英文名称是Higher Order Function,它们是以函数为参数的函数。主要用于映射(mapping)、过滤(filtering)、归档(folding)和排序(sorting)表。高阶函数让程序...

2015/09/08 21:47
14
【数据结构】回顾栈ADT和队ADT

1.简单的说,栈就是只在一个位置上进行插入和删除操作的表,而这个特殊的位置就是表的末端,但这却不被成为栈的末端,而是顶(Top)。 2.栈的基本操作时进栈和出栈,英文名分别是push和pop,...

【算法】5 传说中的快排是怎样的

什么是快速排序 快速排序简介 快速排序(英文名:Quicksort,有时候也叫做划分交换排序)是一个高效的排序算法,由Tony Hoare在1959年发明(1961年公布)。当情况良好时,它可以比主要竞争对...

【SICP练习】8 练习1.12

 这道练习的翻译有误。原文是:Write a procedure that computes elements of Pascal’s triangle bymeans of a recursive process.正确的翻译应该是计算帕斯卡三角形的各个元素。 y : ...

【数据结构】回顾表ADT

1.对于表的所有操作来说,都可以使用数组来实现,而且数组虽然是静态分配的,但内部存储数组的vector类却允许在需要时将数组的大小增加一倍。 2.正是因为数组的实现,使得printList以线性时间...

【SICP练习】65 练习2.36

 练习2.36 虽然accumulate正在变得越来越复杂,但我还并未完全领悟到它的深刻意义。不过直觉告诉对于序列的序列,我们要做的是依次取出它每个序列的第一个元素。此方法来源于网络,我一直...

2015/09/08 21:47
4
【SICP练习】110 练习3.23

练习3-23 原文 Exercise 3.23. A deque (“double-ended queue”) is a sequence in which items can be inserted and deleted at either the front or the rear. Operations on deques are ...

【算法】3 由招聘问题看随机算法

招聘问题 我想看我博客的还是学生人群偏多吧,本身很快就要去面试了,在这篇博客的问题中,我们就把自己当作Boss过把瘾。 某天,你想雇用一名算法工程师。当然,不可能让你这个Boss亲自去到处...

【数据结构】回顾散列表

1.散列表(hash table)的实现成为散列(hashing),是一种以常数平均时间执行输入、删除和查找的技术。但是那些需要元素间任何排序信息的数操作将不会得到有效的支持。 2.散列函数示例 int ...

【SICP归纳】3 层次性数据和符号数据

在学习书中第二章的时候有个问题一直让我很困扰,那就是2.2.4节的实例,因为没法输出书中华丽的图案,只能是一对英文字母。这在几个月前浅浅的学了一会Common Lisp的时候也是如此,当时看到书...

【SICP练习】57 练习2.27

 练习2.27 又是修改程序的题目,要求我们写出的deep-reverse函数要将表中的元素也反转过来,这其中应该要用到递归来实现吧。 (define (deep-reverse tree) (cond ((null? tree) ‘()) (...

2015/09/08 21:46
2
【Scheme归纳】3 比较do, let, loop

对象的比较 eq? 这个函数用来比较2个对象的地址,如果相同的话就返回#t。在Scheme中真用#t表示,假则用#f。 例如,(eq? str str)返回#t,因为str本身的地址的是一样的,但是”scheme”和”s...

【数据结构】回顾表、栈、队列

1.如何通过调整链而不是数据来交换两个相邻的元素? // 单向链表 Node *p,*afterp; p=beforep->next; afterp=p->next; p->next=afterp->next; beforep->next=after...

【SICP练习】68 练习2.39

 练习2.39 通过前一习题的类比相信已经知道了fold-left和fold-right的内在意义,本题中要求的逆序数可以用cons来构造。具体为,先将list的第一个元素取出用(cons (car list) ‘() )构造,...

2015/09/08 21:47
1

没有更多内容

加载失败,请刷新页面

返回顶部
顶部