• 算法入门基础


    1 数据结构

    1. 链表:单链表,循环链表,双向链表 LikedList<>

      特点:适合增删,不适合查找

    2. 数组

      特点:适合查找,不适合增删

      深度优先搜索算法,会选择最新的数据最为候补顶点

    1. 队列

      广度优先搜索算法,会从搜索候补集中选择最早的作为下一个顶点

    2. 哈希表

      链地址法:若发生冲突,利用链表在以后数据的后面插入新的数据来解决冲突

    3. 适合频繁从数据中取出最大或最小值。比如迪杰斯特拉算法

      堆的特点:

      1. 堆是一个完全二叉树
      2. 堆中每个节点的值总大于或小于孩子节点的值
      3. 堆中每个节点的子树都是堆
      4. 重构,插入的时间复杂度log2n
    4. 完全二叉树:除了最后一层外,每个节点均达到最大值,最后一层只缺少右边的值。

      满二叉树:所有节点均有两个子节点。

      二叉查找树:

      1)若左子树不为空,则左子树结点均小于它的根结点

      2)若右子树不为空,则右子树结点均大于它的根结点

      平衡二叉树:左右子树高度之差不大于1.

    2 排序

    1. 冒泡排序
    2. 选择排序
    3. 插入排序
    4. 堆排序
    5. 归并排序
    6. 快速排序(分治法)

    3 数组的查找

    1. 线性查找
    2. 二分查找

    4 图的搜索

    1. 广度优先搜索
    2. 深度优先搜索
    3. 贝尔曼-福特算法(Bellman Ford),曾提出动态规划算法,用于处理最短路径问题,适合存在负权重的图
    4. 狄克斯特拉算法(Dijkstra),用于处理最短路径问题,适合不存在负权重的图
    5. A*算法,启发式算法,人工干预,距离估算值。

      分别计算起点周围每个顶点的权重。计算方法"从起点到该顶点的距离"加上"距离估算值"。

      该算法常用于游戏中计算敌人追该玩家的行动路线等。

    5 安全和算法

    1. 四个问题:窃听,假冒,篡改,事后否认,

      分别对应的处理方式加密,消息认证码,数字签名,数字证书

    2. 哈希函数 密码加密
    3. 公开密钥加密 无法显示自己是由谁生成的。不对称
    4. 共享密钥加密 对称
    5. 混合加密。 对共享秘钥进行公开秘钥加密

      SSL(secure sockets layer,安全套接字),新名TLS

      6.迪菲赫尔曼密钥

      7.消息认证码的作用:认证,检测篡改

      8.数字签名的作用:认证,检测篡改,预防事后否认

      9.数字证书的所用:认证,检测篡改,防止冒名

    6 聚类和其他

    1. k_means
    2. 欧几里得算法 求两个大数的最大公约数
    3. 素性检测 费马小定理
    4. 网页排名
    5. 汉诺塔-递归

    递归

      分而治之(Divide and conquer)

      原理:

      1)找出简单的基线条件

      2)确定如何缩小问题的规模,使其符合基线条件

  • 相关阅读:
    ubuntu 系统命令
    js模板引擎实例一
    读取页面上所有的checkbox
    使用fileReader实现图片预览
    html5中的audio标签针对IOS系统的兼容处理
    CSS单位
    使用变换属性的旋转和动画属性实现大风车效果
    css动画属性--轮播图效果
    php curl详解
    linux权限详解
  • 原文地址:https://www.cnblogs.com/smuxiaolei/p/10847255.html
Copyright © 2020-2023  润新知