zoukankan      html  css  js  c++  java
  • 算法与数据结构的介绍

    数据结构和算法

    • CMDB项目 (****)
    • 数据分析
    • 数据结构和算法 (****)
    数据结构和算法地位:
    • 操作系统
    • 计算机组成原理
    • 网络系统
    • 软件工程
    • 数据结构和算法 (考研必考)

    数据结构和算法是计算结科学领域非常核心的一门课程。
    程序 = 数据结构 + 算法

    学习时长

    • 算法
      • 排序算法
        • 冒泡排序 (**)
        • 选择排序
        • 插入排序
        • 快速排序 (**)
        • 希尔排序
        • 计数排序
      • 查找
        • 顺序查找
        • 二分查找 (**)
    • 数据结构
      • 线性结构
        • 数组 (列表)
        • 链表 (约瑟夫,丢手绢问题)
        • 线性结构的应用
          • 队列
      • 非线性结构
          • 一般树
            • B+树
          • 二叉树
            • 完全二叉树
            • 满二叉树
          • 森林
          • mysql的索引:B+树 不是二叉树
          • 图论

    总结:这两天的内容,你学完之后,做出有用的东西。主要学习的是思考的问题的方式,方法。就像练功的人练内功一样。内功不好 ,学其他的东西非常的费劲。如果听不懂的话,很正常。但是大家千万不要放弃,每天要不断的去思考,说不定哪一天就像明白了。

    算法衡量的标准

    1.时间复杂度,重点

    问: 比如说,现在有两个程序,这两个程序的运行时间如何衡量?
    答:用time模块判断,time.time() 来进行计算

    上述的计算方式,前提是:两段程序必须运行在同一个硬件相同(CPU,内存)的环境下运行,才有意义。

    因此,我们使用时间差的方式来衡量一个程序是否快慢没有任何的意义。所以,使用程序执行的大概次数来衡量程序的执行快慢,把这种衡量的方式称之为时间复杂度,使用O()来记

    如何一眼判断时间复杂度?

    • 循环减半的过程O(logn)
    • 几次循环就是n的几次方的复杂度

    2.空间复杂度

    这段程序运行的过程中,是否占用了内存空间。
    微博,用redis。196G内存

    常见的排序算法

    • 算法
      • 排序算法
        • 冒泡排序 (**)
        • 选择排序
        • 插入排序
        • 快速排序 (**)
        • 希尔排序
        • 桶排序 ---》 计数排序
        • 动态规划 贪心(分糖果,人民币问题) 背包问题
      • 查找
        • 顺序查找
        • 二分查找 (**)

    博客地址:

    http://lupython.gitee.io/
    https://visualgo.net/zh

    数据结构

    • 线性结构

      就是能够用一根线串起来的数据结构

      • 数组 (列表)
        • 问:申请数组的前提条件是啥? a[12]?内存需要满足的条件?
        • 答:内存必须有一块连续的内存空间
        • int a[7] : 声明一个数组,这个数组的数组名是 a, 数组的大小是 7, 数组元素的类型是整型。 int a[7] = array(1,2,3,4,5,6,7)
        • 问:如何申请内存?
        • 答:C,C++语言,申请:mallco (28)。释放:free(28)
        • 问:int a[7] = [1,2,3,4,5,6,7] a[3] = 4?
        • 答:a[3] = 首地址(1000) + 索引(3) * 类型长度(4) = 1012 --- 1015
        • 问:数组首地址从哪获取?
        • 答:数组首地址保存在数组名中
        • 列表中的增(append)删(pop)改(update)查(for)
      • 链表 (约瑟夫,丢手绢问题)
      • 线性结构的应用
        • 队列
    • 非线性结构

        • 一般树
          • B+树
        • 二叉树
          • 完全二叉树
          • 满二叉树
        • 森林
  • 相关阅读:
    Matlab 绘制三维立体图(以地质异常体为例)
    Azure DevOps的variable group实现array和hashtable参数的传递
    Azure DevOps 利用rest api设置variable group
    Azure AADSTS7000215 其中一种问题的解决
    Power BI 实现实时更新Streaming Dataset
    AAD Service Principal获取azure user list (Microsoft Graph API)
    Matlab 沿三维任意方向切割CT图的仿真计算
    Azure Powershell script检测登陆并部署ARM Template
    Azure KeyVault设置策略和自动化添加secrets键值对
    Azure登陆的两种常见方式(user 和 service principal登陆)
  • 原文地址:https://www.cnblogs.com/yafeng666/p/12663769.html
Copyright © 2011-2022 走看看