Hi, ChengYu!

You got to put the past behind you before you can move on.

  • 海上月是天上月,眼前人是心上人。
    算法与数据结构——队列

    摘要: 队列 队列(queue)是一种遵循先入先出规则的线性数据结构。队列模拟了排队现象,即新来的人不断加入队列尾部,而队列头部的人逐个离开。 如图所示,我们将队列头部称为“队首”,尾部称为“队尾”,将把元素加入队列尾部的操作称为“入队”,删除队首元素的操作称为“出队”。 队列常用操作 方法名 描述 时间复

    算法与数据结构——栈

    摘要: 栈 栈(stack)是一种遵循先入后出逻辑的线性数据结构。 如图所示,我们将堆叠元素的顶部称为“栈顶”,底部称为“栈底”。将吧元素添加到栈顶的操作叫做“入栈”,删除栈顶的操作叫做“出栈”。 栈的常用操作 方法 描述 时间复杂度 push() 元素入栈(添加至栈顶) O(1) pop() 栈顶元素出栈

    算法与数据结构——内存与缓存

    摘要: 内存与缓存 数组和链表两种数据结构分别代表了“连续存储”和“分散存储”两种物理结构。实际上,物理结构在很大程度上决定了程序对内存和缓存的使用效率,进而影响算法程序的整体性能。 计算机存储设备 计算机中包括三种类型的存储设备:硬盘(hard disk)、内存(random-access memory,

    算法与数据结构——链表

    摘要: 链表 内存空间是所有程序的公共资源,在一个复杂的系统运行环境下,空闲的内存空间可能散落在内存各处。存储数组的空间必须是连续的,而当数组非常大时,内存可能无法提供如此大的连续空间,此时链表的灵活性优势就体现出来了。 链表是一种线性数据结构,其中的每个元素都是一个节点对象,各个节点通过“引用”相连接。引

    算法与数据结构——基本数据类型与编码

    摘要: 基本数据类型 基本数据类型是计算机CPU可以直接进行运算的类型,在算法中直接被使用,主要包括以下几种 整数类型byte、short、int、long。 浮点数类型float、double,用于表示小数 字符类型char,用于表示各种语言的字母、标点符号甚至表情符号等。 布尔类型bool,用于表示“是

    算法与数据结构——数据结构的分类

    摘要: 数据结构的分类 常见的数据结构包括数组、链表、栈、队列、哈希表、树、堆、图,它们可以从“逻辑结构”和“物理结构”两个维度进行分类 逻辑结构:线性与非线性 逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照一定顺序排列,体现了数据之间的线性关系;而在数中,数据从顶部向下按层次排列,表现出“

    算法与数据结构——空间复杂度

    摘要: 空间复杂度 空间复杂度(space complexity)用于衡量算法占用内存空间随着数据量变大时的增长趋势。这个概念与时间复杂度非常类似,只需将“运行时间”替换为“占用内存空间”。 算法相关空间 算法在运行过程中使用的内存空间主要包括以下几种。 输入空间:用于存储算法的输入数据。 暂存空间:用于存

    算法与数据结构——时间复杂度

    摘要: 时间复杂度 运行时间可以直观且准确地反映算法的效率。要准确预估一段代码的运行时间,应该进行如下操作。 确定运行平台,包括硬件配置、编程语言、系统环境等,这些因素都会影响代码的运行效率。 评估各种计算操作的运行时间,例如加法操作需要1ns,乘法操作需要10ns,打印操作需要5ns等。 统计代码中所有的

    算法与数据结构——了解复杂度(迭代与递归)

    摘要: 复杂度分析 算法效率评估 在算法设计中,我们追求以下两个层面的目标。 找到问题解法:算法需要再规定的输入范围内可靠地求得问题的正确解 寻求最优解法:同一个问题可能存在多种解法,我们希望找到尽可能高效的算法。 也就是说,在能够解决问题的前提下,算法效率已经成为衡量算法优劣的主要评价指标,它包括以下两个

    C++ string类型常用操作

    摘要: string类型操作 字符串切割 str.substr(索引,切割的个数) -> 返回字符串 注意:第二个参数为切割的个数 string buf = "abcdefg"; buf.substr(0, 2); // 结果为 "ab" buf.substr(1, 3); // 结果为 "bcd" 按字符

    上一页 1 2 3 4 5 6 7 8 ··· 17 下一页
    摘要: 队列 队列(queue)是一种遵循先入先出规则的线性数据结构。队列模拟了排队现象,即新来的人不断加入队列尾部,而队列头部的人逐个离开。 如图所示,我们将队列头部称为“队首”,尾部称为“队尾”,将把元素加入队列尾部的操作称为“入队”,删除队首元素的操作称为“出队”。 队列常用操作 方法名 描述 时间复 阅读全文
    posted @ 2024-08-27 10:16 风陵南 阅读(77) 评论(0) 推荐(0) 编辑
    摘要: 栈 栈(stack)是一种遵循先入后出逻辑的线性数据结构。 如图所示,我们将堆叠元素的顶部称为“栈顶”,底部称为“栈底”。将吧元素添加到栈顶的操作叫做“入栈”,删除栈顶的操作叫做“出栈”。 栈的常用操作 方法 描述 时间复杂度 push() 元素入栈(添加至栈顶) O(1) pop() 栈顶元素出栈 阅读全文
    posted @ 2024-08-26 15:24 风陵南 阅读(74) 评论(0) 推荐(0) 编辑
    摘要: 内存与缓存 数组和链表两种数据结构分别代表了“连续存储”和“分散存储”两种物理结构。实际上,物理结构在很大程度上决定了程序对内存和缓存的使用效率,进而影响算法程序的整体性能。 计算机存储设备 计算机中包括三种类型的存储设备:硬盘(hard disk)、内存(random-access memory, 阅读全文
    posted @ 2024-08-26 10:41 风陵南 阅读(50) 评论(0) 推荐(0) 编辑
    摘要: 链表 内存空间是所有程序的公共资源,在一个复杂的系统运行环境下,空闲的内存空间可能散落在内存各处。存储数组的空间必须是连续的,而当数组非常大时,内存可能无法提供如此大的连续空间,此时链表的灵活性优势就体现出来了。 链表是一种线性数据结构,其中的每个元素都是一个节点对象,各个节点通过“引用”相连接。引 阅读全文
    posted @ 2024-08-23 14:42 风陵南 阅读(30) 评论(0) 推荐(0) 编辑
    摘要: 基本数据类型 基本数据类型是计算机CPU可以直接进行运算的类型,在算法中直接被使用,主要包括以下几种 整数类型byte、short、int、long。 浮点数类型float、double,用于表示小数 字符类型char,用于表示各种语言的字母、标点符号甚至表情符号等。 布尔类型bool,用于表示“是 阅读全文
    posted @ 2024-08-23 10:17 风陵南 阅读(156) 评论(0) 推荐(0) 编辑
    摘要: 数据结构的分类 常见的数据结构包括数组、链表、栈、队列、哈希表、树、堆、图,它们可以从“逻辑结构”和“物理结构”两个维度进行分类 逻辑结构:线性与非线性 逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照一定顺序排列,体现了数据之间的线性关系;而在数中,数据从顶部向下按层次排列,表现出“ 阅读全文
    posted @ 2024-08-22 16:25 风陵南 阅读(98) 评论(0) 推荐(0) 编辑
    摘要: 空间复杂度 空间复杂度(space complexity)用于衡量算法占用内存空间随着数据量变大时的增长趋势。这个概念与时间复杂度非常类似,只需将“运行时间”替换为“占用内存空间”。 算法相关空间 算法在运行过程中使用的内存空间主要包括以下几种。 输入空间:用于存储算法的输入数据。 暂存空间:用于存 阅读全文
    posted @ 2024-08-19 17:28 风陵南 阅读(41) 评论(0) 推荐(0) 编辑
    摘要: 时间复杂度 运行时间可以直观且准确地反映算法的效率。要准确预估一段代码的运行时间,应该进行如下操作。 确定运行平台,包括硬件配置、编程语言、系统环境等,这些因素都会影响代码的运行效率。 评估各种计算操作的运行时间,例如加法操作需要1ns,乘法操作需要10ns,打印操作需要5ns等。 统计代码中所有的 阅读全文
    posted @ 2024-08-19 16:03 风陵南 阅读(57) 评论(0) 推荐(0) 编辑
    摘要: 复杂度分析 算法效率评估 在算法设计中,我们追求以下两个层面的目标。 找到问题解法:算法需要再规定的输入范围内可靠地求得问题的正确解 寻求最优解法:同一个问题可能存在多种解法,我们希望找到尽可能高效的算法。 也就是说,在能够解决问题的前提下,算法效率已经成为衡量算法优劣的主要评价指标,它包括以下两个 阅读全文
    posted @ 2024-08-19 15:55 风陵南 阅读(64) 评论(0) 推荐(0) 编辑
    摘要: string类型操作 字符串切割 str.substr(索引,切割的个数) -> 返回字符串 注意:第二个参数为切割的个数 string buf = "abcdefg"; buf.substr(0, 2); // 结果为 "ab" buf.substr(1, 3); // 结果为 "bcd" 按字符 阅读全文
    posted @ 2024-08-16 10:25 风陵南 阅读(173) 评论(0) 推荐(0) 编辑
    摘要: char*类型与vector<char> 类型的相互转换 很多时候需要使用动态的字符串,但是char*难以完成相应的扩容操作,而动态数组vector则可以简单地完成,结合二者特性就可以完成动态字符串,同时,也需要二者类型的相互转换: char* 转vector<char> vector<char> 阅读全文
    posted @ 2024-08-08 14:37 风陵南 阅读(466) 评论(0) 推荐(0) 编辑
    摘要: 算法初识 算法定义: 算法(algorithm)是在有限时间内解决特定问题的一组指令或操作步骤,它具有以下特性。 问题是明确的,包含清晰的输入和输出定义。 具有可行性,能够在有限步骤、时间和内存空间完成。 各步骤都有确定的定义,在相同的输入和运行条件下,输出始终相同。 数据结构定义: 数据结构(da 阅读全文
    posted @ 2024-08-08 11:34 风陵南 阅读(13) 评论(0) 推荐(0) 编辑
    摘要: 文件操作 程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放 通过文件操作可以将数据持久化 C++中对文件操作需要包含头文件 "fstream" 文件类型分为两种: 文本文件:文件以文本的ASCII码的形式存储在计算机中 二进制文件:文件以文本的二进制形式存储在计算机中,用户一般不能直接 阅读全文
    posted @ 2024-07-29 23:28 风陵南 阅读(140) 评论(0) 推荐(0) 编辑
    摘要: 多态 基本概念 多态是C++面向对象三大特性之一 多态分为两类 静态多态:函数重载和运算符重载属于静态多态,复用函数名 动态多态:派生类和虚函数实现运行时多态 静态多态和动态多态区别: 静态多态的函数地址早绑定——编译阶段确定函数地址 动态多态的函数地址晚绑定——运行阶段确定函数地址 动态多态满足条 阅读全文
    posted @ 2024-07-28 20:29 风陵南 阅读(18) 评论(0) 推荐(0) 编辑
    摘要: C++内存空间的布局 每个应用都有自己独立的内存空间,其主要分为4个区域 代码区(代码段) 用于存放代码所转换成的机器码 数据段(全局区) 用于存放全局变量等 栈空间 每调用一个函数,就会给它分配一段连续的内存地址,函数执行完毕会自动回收这段占空间 自动分配和回收 堆空间 需要主动申请和释放 堆空间 阅读全文
    posted @ 2024-05-17 16:27 风陵南 阅读(10) 评论(0) 推荐(0) 编辑
    上一页 1 2 3 4 5 6 7 8 ··· 17 下一页
    点击右上角即可分享
    微信分享提示