算法的艺术

来源:互联网 发布:docker hub 阿里云 编辑:程序博客网 时间:2024/05/18 01:07

要么编程,要么被动接受编程 ---题记

计算机科学是应用数学最难的一个分支,所以如果你是一位蹩脚的数学家,最好留在原地,继续当你的数学家---Dijkstra

    真正的随机数是使用物理现象产生的,如:掷钱币,骰子,滑轮,使用电子元件的噪声,核裂变等,这样的随机数发生器叫做物理随机数发生器,他们的缺点是技术要求比较高,计算机不能产生真正的随机数,故在计算机中产生的随机数称为伪随机数。
    基本算法策略包括:贪心法、分治法、动态规划法、回溯法、分支限界法、随机化算法。
    顺序表:把线性表的元素按逻辑次序依次存放在一组连续的存储单元中,用这种方法存储的线性表简称顺序表。
    链表:用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的),它由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。主要形式有线性链表(或单链表),循环链表,双向量表。
    和线性表类似,栈(是一种运算受限的线性表)也分为顺序栈和链栈。队列插入的一端称为队尾,进行删除的一端称为队首。
    图的结构比较复杂,任意两个顶点之间都有可能存在联系,因此无法以数据元素在存储控件中的位置来表示元素之间的关系,即图没有顺序映像的存储结构,但可以借助数组来表示元素之间的关系,常用的图的存储结构有:邻接矩阵,邻接表,邻接多重表,和十字链表。用多重链表表示图是自然的事,它是一种简单的链式映像结构。
    二叉堆是一种特殊的堆,是完全二叉树。

    (待续。。。。。。)

    
0 0