数据结构和算法大纲

  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))
  • 算法本身占用的空间
  • 算法运行时占用的空间
  • 算法运行时临时占用的空间
线性表
  1. 顺序表(数组Array,动态数组ArrayList)
    1. Array必须在声明的时候指定类型和容量
    2. ArrayList,动态数组,Array扩展而来,申明时不需要指定类型和容量,里面存储的是Object类型,使用是包含装箱和拆箱操作
  2. 链表(单向,双向,循环)
    1. List使用泛型,声明时指定类型:List<T>
  3. 类型安全
  4. 探讨.net Framwork底层线性表的实现方式
    1. 趣味算法:面积问题
    2. 约瑟夫算法
栈和队列
  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. 迷宫算法(打造自己的迷宫)
排序
  1. 冒泡排序与快速排序
  2. 直接插入排序和希尔排序
  3. 堆排序
  4. 归并排序
  5. 各种排序比较
  6. 二分查找
一些常见的算法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值