• 21天学习挑战:经典算法---算法概念引入


    活动地址:CSDN21天学习挑战赛

    21天学习挑战:经典算法---算法概念引入

    算法概念

    任何被明确定义的计算过程可以称作算法,它将某个值活一组值作为输入,并产生莫格值或一组值作为输出。所以算法可以被称作将输入转为输出的一系列的计算步骤。

    这样的概况是比较抽象和标准的,其实说白了就是步骤明确的解决问题的方法。由于是在计算机中执行,所以通常先用伪代码表示,清晰的表达出思路和步骤。这样真正执行的时候,就可以使用不同的语言来实现出相同的兄啊过给。

    概况的说,算法就是解决问题的工具。在描述一个算法时,我们关注的是输入与输出。也就是说只要把原始数据和结果描述清楚了,那么算法所作的事情也就清楚了。

    在设计一个算法时也是需要先明确我们有什么和我们要什么。

    在这里插入图片描述

    相关概念

    数据结构

    算法经常会和数据结构一起出现,这是因为对于同一个问题,使用不同的数据结构来存储数据,对应的算法可能千差万别。
    所以在整个学习过程中,也会涉及到各种数据结构的使用
    常见的数据结构包括:

    • 数组
    • 队列
    • 链表
    • 树等等

    算法的效率

    在一个算法设计完成后,还需要对算法的执行情况作一个评估。一个好的算法,可以大幅度的节省资源消耗和时间。在进行评估时不需要太具体,毕竟数据量是不确定的,通常是以数据量为基准确定一个量级。

    通常会使用到两个概念:

    • 时间复杂度
    • 空间复杂度

    时间复杂度

    通常把算法中的基本操作重复执行的频度称为算法的时间复杂度。算法中的基本操作一般是指算法中最深层循环内的语句(赋值、判断、四则运算等基础操作)。我们可以把时间频度记为T(n),它与算法中语句的执行次数成正比。其中的n被称为问题的规模,大多数情况下为输入的数据量。

    对于每一段代码,都可以转为常数或者与n相关的函数表达式,记作f(n)。如果我们把每一段代码的花费的时间加起来就能够得到一个刻画时间复杂度的表达式,在合并后保留量级最大的部分即可确定时间复杂度。

    空间复杂度

    程序从开始执行到结束所需要的内存量。也就是整个代码中最大需要占用多少的空间。为了评估算法本身,输入数据所占用的空间不会考虑,通常更关注运算时需要额外定义多少临时变量或多少存储结构。

  • 相关阅读:
    [附源码]计算机毕业设计SpringBoot四川景区管理系统
    [附源码]Python计算机毕业设计Django疫苗及注射管理系统
    非侵入式负荷检测与分解:电力数据挖掘新视角
    基于Python的车牌识别系统实现
    Windows10电脑音频出现故障【开机小喇叭突然变红叉,我成功解决的方法】
    Redis带你深入学习数据类型set
    opengl glfw demo 下载,在windows vs2015中运行
    C语言每日一题(31)相交链表
    JMM 内存模型概念
    Java中的LinkedHashSet使用[71]
  • 原文地址:https://blog.csdn.net/qq_32761549/article/details/126115173