zoukankan      html  css  js  c++  java
  • algorithm算法设计,数据结构基本概念之我的归纳 by whb_咸菜圣斗士啊斌斌斌斌

    算法的定义从广泛上来说,可以说是完成一件事情的方法或步骤。

    在计算机的角度说,算法是一组有限的指令集组成的过程。     -- 有限的。

    算法有五个特性: 确定性,可行性,有穷性,and 输入,输出!

    必须指出的是,算法可以改变我们程序的运行时间,好的算法可以节省我们很多时间,使我们的程序运行起来更行云流水,得心应手。

    但是算法不是影响我们程序运行效果的唯一因为,受其他因为影响,比如机器质量,语言,编译程序,程序员的水平,and so on。

    我们可以从时间复杂性空间复杂性来评估(estimate)算法的性能,同时我们也应该看到算法的正确性,健壮性,易读性也是其性能的体现。

    一般来说我们,我们估计时间采用的是近似估计,如O(n),欧米伽n,等等等等。

    我们可以可以通过计算出一个基本运算(又称为元运算)的次数,来计算出时间的数学表达式,并且可以通过取极限来算出时间阶数,即O(n)等。

    如log(n2)/n(当n趋于无穷的时候)=0 所以log(n2)=O(n);  如果是无穷则相反,如果得出一个常数,那么具有同样的级别。

    链表---链表由有限的节点序列组成。有表头,有前后继关系。

    支持操作:插入,删除。 (比数组节省时间,省却数据搬动数据的时间)。

    扩展:在链表上加一些限制即可演化成堆栈和队列。

    堆栈一种只允许在称为栈顶的一端进行插入和删除运算的链表,也可用数组实现。

    支持操作:将元素压入堆栈和从堆栈中弹出元素。

    POP(S),将返回并弹出栈顶元素(永久移除)。

    图:G是一个有序二元组(V,E),其中V称为顶集(Vertices Set),E称为边集(Edges set),E与V不相交。它们亦可写成V(G)和E(G)。
    E的元素都是二元组,用(x,y)表示,其中x,y∈V。[1]

    树:一棵树就是不包含回路的连通无向图。

    关键特性:假设T是一棵有n个顶点的树,那么

    a) T中任意两点有唯一的路径

    b)T恰好有n-1条边

    c)在T中假如一条边将产生一个回路

    根树:有根的树,至少一个顶点。不能为空树。

    二叉树:有根,可能有左右子树。

    满二叉树:内部节点(除叶子之外的节点称为内部节点)都有左右两个孩子。

    完全二叉树:满二叉树并且叶子拥有相同的深度。

    二叉搜索树:v左边的子树内容比v小,右边比v大,一个集合对应的二叉搜索树不是惟一的。

    数学关系: 

    1.第j层最多有2j个结点。

    2.任何有n个顶点的二叉树高度至少是log(n)取下限,最多是n-1。

    3.完全二叉树或几乎完全二叉树高度为log(n)取下限。

    4.完全二叉树中,叶子树等于内部节点+1

  • 相关阅读:
    数据库表设计
    solr的schame.xml
    搭建solr服务器
    lucene&solr索引维护之查询
    lucene&solr索引维护之删除和修改
    lucene&solr查询索引实例
    lucene&solr入门实例
    java集合排序整理
    HahMap(jdk=1.8)源码解读
    APIO2020 游记
  • 原文地址:https://www.cnblogs.com/xiancai5210/p/3663666.html
Copyright © 2011-2022 走看看