• 数据结构与算法开篇-00


    在家已经看了几本数据结构与算法书了,但是之前都是为考研做准备而且从类没有实现过一次代码.所以这篇博客就是作为记录自己算法实现的一个开端. 依据设计模式依赖倒转原则,这里先写下后面要实现的几个数据结构,后期每个数据结构都以随想形式链接到此处. 内容大概按严蔚敏数据结构中的大纲顺序依次实现.

    算法的几个特性和要求

    算法的五个特性

    1. 有穷性:一个算法的操作步骤是有限的,不能是无限的
    2. 确定性:算法中的每一个步骤都要确定的词,不能含糊不清
    3. 输入: 算法具有0个或多个输入
    4. 输出: 算法至少有1个或多个输出
    5. 可行性:算法的每一步都是可行的,也就是说每一步都能够执行有限的次数完成
    

    算法设计的要求

    1. 正确性:算法的执行结果应当满足预先规定的功能和性能要求。
    2. 可读性:一个算法的设计应当思路清晰、层次分明、易读易懂。
    3. 健壮性:当输入不合法的数据时,能做适当处理,避免引起严重后果。
    4. 高效性:有效地使用存储空间,有高效的时间效率。
    

    常见数据结构

    线性表

    1. 线性链表
    2. 循环链表
    3. 双向链表

    1. 数组实现
    2. 链表实现

    队列

    1. 链队列
    2. 循环队列

    串/数组/广义表

    树/二叉树

    1. 先序遍历
    2. 中序遍历
    3. 后序遍历

    • 深度优先遍历
    • 广度优先遍历
    • 单源最短路径
    • 多源最短路径

    常见排序

    插入排序

    1. 直接插入排序
    2. 希尔排序
    3. 其他插入排序

    快速排序

    选择排序

    1. 简单选择排序
    2. 树形选择排序
    3. 堆排序

    归并排序

    基数排序

    1. 多关键字排序
    2. 链式排序

    以上并未列全, 有些数据结构的应用也是很有必要自己实现一遍的,后期上面依旧会补充.

  • 相关阅读:
    CF1093F Vasya and Array
    CF1093D Beautiful Graph
    mysql主主同步
    mysql主从机制的部署与应用
    什么是多项式?
    从线性逼近到多项式逼近:泰勒级数
    机器学习--boosting家族之XGBoost算法
    倾情大奉送--Spark入门实战系列
    [机器学习笔记] 什么是分类,什么是回归?
    kafka中处理超大消息的一些考虑
  • 原文地址:https://www.cnblogs.com/brandon-zhang/p/14289603.html
Copyright © 2020-2023  润新知