03 – 刷题心得 第一章绪论

二、算法和算法评价(王道)

1、算法具有的五个特性

答案

1、算法具有的五个特性:

有穷性—有穷步+有穷时间

确定性:指令明确,对于相同的输入有相同的输出

可行性:操作可以用基本操作经过有限次实现

输入:0或多

输出:1或多

2、好算法目标:

正确性、可读性、健壮性、高效率和低存储需求

2、算法的时间效率指算法时间复杂度,即执行算法所需的计算工作量

评价一个算法的优劣不仅要考虑算法的时间、空间复杂度,还需要考虑正确性,可读性,健壮性,高效率低存储需求

3、(混淆点)某算法的时间复杂度为 n2 ,表明该算法的执行时间与n2成正比

4、算法的空间复杂度为O(1),表明执行该算法所需的辅助空间大小相比输入的数据规模来说是个常量

辅助空间大小的理解

空间是算法运行所需的全部存储量(包括输入数据本身占用的空间),辅助空间是除输入数据外额外临时使用的存储空间

算法的辅助空间大小是指算法在运行过程中,除了存储输入数据本身所占用的空间外,额外临时占用的存储空间大小。它是衡量算法空间复杂度的重要指标之一。

核心要点

  1. 仅算 “额外空间”
    • 不包括输入数据本身占用的空间,只算算法运行时临时创建的变量、数组、栈、队列等辅助结构的空间。
    • 例如:对数组排序时,数组本身的空间不算辅助空间,但若算法需要创建临时数组(如归并排序),则临时数组的大小属于辅助空间。
  2. 常见场景举例
    • 原地算法(辅助空间小): 如冒泡排序、插入排序,仅使用少量临时变量(如交换元素时的临时变量),辅助空间复杂度为 O(1)。
    • 非原地算法(辅助空间大): 如归并排序,需要额外的临时数组存储合并结果,辅助空间复杂度为 O(n)(n 为输入数据规模)。
  3. 与空间复杂度的关系
    • 算法的空间复杂度 = 输入数据空间 + 辅助空间。
    • 实际分析中,若输入数据空间固定(如给定数组),常简化为分析辅助空间大小。

通俗理解

想象你要整理一本书的章节顺序:

  • 输入数据空间:书本身的纸张和文字占用的空间。
  • 辅助空间:你整理时额外使用的草稿纸、便签、临时书架等临时工具的空间。 辅助空间越小,说明算法越 “节省空间”。

总结

辅助空间大小反映了算法运行时的 “临时内存开销”,在内存受限的场景(如嵌入式系统)中,选择辅助空间小的算法更为关键。

本网站原创文章版权归何大锤的狂飙日记所有。发布者:何大锤,转转请注明出处:何大锤的博客

(1)
何大锤的头像何大锤管理团队

相关推荐

  • 第二章数据结构线性表 – 带头结点的单链表

    一、单链表的定义和表示 – 带头结点的单链表 1、定义 单链表是由表头唯一确定,因此单链表可以用头指针的名字来命名 若头指针名是L,则把链表称为表L 2、单链表的存储结构 二、单链表基本操作的算法实现 – 带头结点的单链表 2.1 单链表的初始化 2.2 判断一个链表是否为空 一、带头结点的单链表代码实现 共6种函数代码 三、头插法创…

    20小时前
    200
  • 第二章数据结构线性表 – 单链表定义

    一、引言 1.1 知识框架 1.2 有了数组为什么还要链表? 在前面我们介绍过数组,数组中元素是存储在连续的内存位置在声明数组时,我们可以指定数组的大小,但这将限制数组可以存储的元素数量 例如我们声明的是 int arr[10],那么arr数组最多可以存储10个数据元素 但是我们事先不知道元素的大小呢? 我们该如何去做? 当然首先想到的是申请一个足够大的数组…

    23小时前
    200
  • 04 程序流程结构

    C/C++支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构 循环结构:依据条件是否满足,循环多次执行某段代码 顺序结构:程序按顺序执行,不发生跳转 选择结构:依据条件是否满足,有选择的执行相应功能 4.1 选择结构 4.1.1 if语句 作用:执行满足条件的语句 if语句的三种形式 示例: 注意:if条件表达式后不要加分号 示例: 示例: 嵌套if…

    4天前
    300
  • 初始C语言01

    0、什么是C语言? C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MC…

    5天前
    000
  • 01 你好Python

    一、课件

    5天前
    000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

2211932694

在线咨询: QQ交谈

邮件:hdcblog1999@163.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
网站建设中ing......