javascript数据结构与算法--高级排序算法
分类:
编程语言 时间:
2015-04-02 23:46:45
阅读次数:
220
javascript数据结构与算法--基本排序算法分析
分类:
编程语言 时间:
2015-04-01 23:37:41
阅读次数:
196
以前看数据结构与算法分析(C语言描述),作者在讲述算法分析时提到递归计算斐波那契数列,
时间复杂度T(N) = T(N-1) + T(N-2);
作者说归纳法易证得T(N) >= Fib(N);而Fib(N) = (3/2)^(N)
这个地方作者处理得有些不太彻底,不是吗?翻来覆去没把Fib(N)准确求出,今天我翻看另一本资料,
更模糊了,它求得2^(N/2) < T(N) < 2^(N)就完事了。
不过今天我开窍了,T(N) = T(N-1) + T(N...
分类:
其他好文 时间:
2015-04-01 15:33:37
阅读次数:
172
tepedef struct Node{
int date;
struct Node *next;
} List;
//创建一个链表
void CreatList(List **ptrl)
{
(**ptrl)=(List*)malloc(sizeof(List));
(*List)->next=NULL;
}
//求长度
int length(List *ptrl)
{
List *...
分类:
编程语言 时间:
2015-03-31 16:01:32
阅读次数:
274
自学数据结构已经很久了,使用的教材是《数据结构与算法分析——C语言描述》。现在回过头来再看一遍此书,重新梳理一下数据结构的相关知识。
以下是摘自维基百科的一些树的基本分类:
无序树:树中任意节点的子节点之间没有顺序关系,这种树称为无序树,也称为自由树;有序树:树中任意节点的子节点之间有顺序关系,这种树称为有序树;
二叉树:每个节点最多含有两个子树的树称为二叉树;
完全二...
分类:
其他好文 时间:
2015-03-30 09:34:06
阅读次数:
317
算法说明假设煎锅里边有N个煎饼摞在了一起,它们大小不一并且顺序不一致,我们需要通过拿铲子将它们不停的翻个,进行排序,最终得到一个底下是大的煎饼,上边是小的煎饼的序列。这个排序的过程就是煎饼排序。这个算法有两种解,一种是普通解,一种是最优解。普通论证:例如你的初始煎饼顺序是[2,4,3,1]然后2与4...
分类:
编程语言 时间:
2015-03-29 07:02:13
阅读次数:
118
C++可看作由以下四种次语言组合而成1.C语言 高效,内置数据类型,数组,区块,语句,指针,预处理器,没有重载、异常、模板2.类 构造,析构,封装,继承,多态,迟绑定3.模板 模板元编程,不关心数据类型,只关心数据结构与算法4.STL 标准模板库,容器,迭代器,算法,函数对象
分类:
编程语言 时间:
2015-03-28 23:13:41
阅读次数:
178
用计算机解决现实生活与生产问题是计算机编程的核心意义,那么如何高效的解决问题就成为我们必须关注的问题,数据结构与算法正是为了高效的解决问题也引入的两个概念,这两个概念相互联系,密不可分。我们从下面几个实际问题来理清楚它们的关系:1. 书架上摆放图书问题对于书架上的图书,我们只涉及两个核心的操作:1)...
分类:
编程语言 时间:
2015-03-28 15:41:25
阅读次数:
324
算法说明图书馆排序是插入排序的变种,典型的以空间换时间的一种方法。我个人感觉这种思路可以学习借鉴,但直接使用的场景应该不大。我们知道,真正的插入排序通常往前边插入元素后,我们要把后边所有的元素后移。而图书馆排序的思路就是将每个元素后边都预留N个空间(例如预留10个元素空间),这样往某个元素前插入时,...
分类:
编程语言 时间:
2015-03-28 07:38:50
阅读次数:
161
题型1:拓扑排序1)使用一个入度数组indegree来记录每个顶点的入度数,并使用一个变量来记录已经访问的顶点数2)将入度为0的顶点压入栈中3)将栈顶的元素删除。访问的顶点数加1.并将入该顶点相邻的所有顶点的入度数减1,如果减1之后的入度数为0,则将其压入栈中;4)重复上面的过程,直到栈中的元素为空...
分类:
编程语言 时间:
2015-03-28 01:04:03
阅读次数:
117