• 数据结构和算法大纲


    1. 算法的评价指标
      1. 什么是数据结构?
        1. 数据+关系
      2. 数据逻辑结构(关系)
        1. 集合
        2. 线性结构
        3. 树结构
        4. 图结构或网状结构
      3. 存储结构
        1. 顺序存储结构
        2. 链式存储结构
        3. 索引存储方法
        4. 散列存储方法
      4. 数据类型
        1. 原子类型
          • string
          • bool
          • int
          • ......
        2. 结构类型
          • 结构体
      5. 算法的时间复杂度
        1. T(n)=O(f(n))
      6. 算法的空间复杂度
        1. S(n)=O(f(n))
          • 算法本身占用的空间
          • 算法运行时占用的空间
          • 算法运行时临时占用的空间
    2. 线性表
      1. 顺序表(数组Array,动态数组ArrayList)
        1. Array必须在声明的时候指定类型和容量
        2. ArrayList,动态数组,Array扩展而来,申明时不需要指定类型和容量,里面存储的是Object类型,使用是包含装箱和拆箱操作
      2. 链表(单向,双向,循环)
        1. List使用泛型,声明时指定类型:List<T>
      3. 类型安全
      4. 探讨.net Framwork底层线性表的实现方式
        1. 趣味算法:面积问题
        2. 约瑟夫算法
    3. 栈和队列
      1. 队列的基本用法
      2. 分析微软底层队列和栈的实现方法
        1. 趣味算法:返回不重复数的实现
      1. String的基本用法
        1. 具有值类型模式的引用类型
      2. SringBulder
        1. 解决字符串拼接的一种比较好的方式
      3. 串模式匹配
        1. Brute-Force算法
        2. KMP算法
        3. 对KMP算法改进、优化
      1. 二叉树的基本概念
        1. 二叉树的存储结构
        2. 二叉树的遍历
          1. 深度优先遍历
          2. 广度优先遍历
      2. 线索二叉树
        1. 线索二叉树的实现
        2. 中序线索二叉树
      3. 树和深林
        1. 树的存储结构
        2. 树、深林、二叉树的转换
      4. 二叉树的画法(程序实现)
      5. 趣味算法:魔术师的秘密
      1. 图的表示
      2. 图的存储结构
        1. 邻接矩阵表示法
        2. 邻接表表示法
      3. 图的遍历
        1. 深度优先
        2. 广度优先
      4. 最小生成树
        1. 普里姆算法
        2. 克鲁斯卡尔算法
      5. 弗洛伊德算法
      6. 总结
      7. 迷宫算法(打造自己的迷宫)
    4. 排序
      1. 冒泡排序与快速排序
      2. 直接插入排序和希尔排序
      3. 堆排序
      4. 归并排序
      5. 各种排序比较
      6. 二分查找
    5. 一些常见的算法
  • 相关阅读:
    vue的环境的搭建
    rem
    web前端面试题总结
    vue遇到的一些问题
    栅格布局的理解
    利用node的http模块创建一个简单的http服务器
    node 常用的一些终端的命令的快捷键
    node 环境变量设置方法
    CentOS7.5搭建Hadoop2.7.6完全分布式集群
    UUID做主键,好还是不好?这是个问题
  • 原文地址:https://www.cnblogs.com/yanglang/p/6674247.html
Copyright © 2020-2023  润新知