上一页 1 2 3 4 5 6 7 8 9 10 ··· 18 下一页
摘要: 空间复杂度 空间复杂度(space complexity)用于衡量算法占用内存空间随着数据量变大时的增长趋势。这个概念与时间复杂度非常类似,只需将“运行时间”替换为“占用内存空间”。 算法相关空间 算法在运行过程中使用的内存空间主要包括以下几种。 输入空间:用于存储算法的输入数据。 暂存空间:用于存 阅读全文
posted @ 2024-08-19 17:28 风陵南 阅读(99) 评论(0) 推荐(0)
摘要: 时间复杂度 运行时间可以直观且准确地反映算法的效率。要准确预估一段代码的运行时间,应该进行如下操作。 确定运行平台,包括硬件配置、编程语言、系统环境等,这些因素都会影响代码的运行效率。 评估各种计算操作的运行时间,例如加法操作需要1ns,乘法操作需要10ns,打印操作需要5ns等。 统计代码中所有的 阅读全文
posted @ 2024-08-19 16:03 风陵南 阅读(91) 评论(0) 推荐(0)
摘要: 复杂度分析 算法效率评估 在算法设计中,我们追求以下两个层面的目标。 找到问题解法:算法需要再规定的输入范围内可靠地求得问题的正确解 寻求最优解法:同一个问题可能存在多种解法,我们希望找到尽可能高效的算法。 也就是说,在能够解决问题的前提下,算法效率已经成为衡量算法优劣的主要评价指标,它包括以下两个 阅读全文
posted @ 2024-08-19 15:55 风陵南 阅读(186) 评论(0) 推荐(0)
摘要: string类型操作 字符串切割 str.substr(索引,切割的个数) -> 返回字符串 注意:第二个参数为切割的个数 string buf = "abcdefg"; buf.substr(0, 2); // 结果为 "ab" buf.substr(1, 3); // 结果为 "bcd" 按字符 阅读全文
posted @ 2024-08-16 10:25 风陵南 阅读(245) 评论(0) 推荐(0)
摘要: char*类型与vector<char> 类型的相互转换 很多时候需要使用动态的字符串,但是char*难以完成相应的扩容操作,而动态数组vector则可以简单地完成,结合二者特性就可以完成动态字符串,同时,也需要二者类型的相互转换: char* 转vector<char> vector<char> 阅读全文
posted @ 2024-08-08 14:37 风陵南 阅读(794) 评论(0) 推荐(0)
摘要: 算法初识 算法定义: 算法(algorithm)是在有限时间内解决特定问题的一组指令或操作步骤,它具有以下特性。 问题是明确的,包含清晰的输入和输出定义。 具有可行性,能够在有限步骤、时间和内存空间完成。 各步骤都有确定的定义,在相同的输入和运行条件下,输出始终相同。 数据结构定义: 数据结构(da 阅读全文
posted @ 2024-08-08 11:34 风陵南 阅读(45) 评论(0) 推荐(0)
摘要: 文件操作 程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放 通过文件操作可以将数据持久化 C++中对文件操作需要包含头文件 "fstream" 文件类型分为两种: 文本文件:文件以文本的ASCII码的形式存储在计算机中 二进制文件:文件以文本的二进制形式存储在计算机中,用户一般不能直接 阅读全文
posted @ 2024-07-29 23:28 风陵南 阅读(194) 评论(0) 推荐(0)
摘要: 多态 基本概念 多态是C++面向对象三大特性之一 多态分为两类 静态多态:函数重载和运算符重载属于静态多态,复用函数名 动态多态:派生类和虚函数实现运行时多态 静态多态和动态多态区别: 静态多态的函数地址早绑定——编译阶段确定函数地址 动态多态的函数地址晚绑定——运行阶段确定函数地址 动态多态满足条 阅读全文
posted @ 2024-07-28 20:29 风陵南 阅读(57) 评论(0) 推荐(0)
摘要: C++内存空间的布局 每个应用都有自己独立的内存空间,其主要分为4个区域 代码区(代码段) 用于存放代码所转换成的机器码 数据段(全局区) 用于存放全局变量等 栈空间 每调用一个函数,就会给它分配一段连续的内存地址,函数执行完毕会自动回收这段占空间 自动分配和回收 堆空间 需要主动申请和释放 堆空间 阅读全文
posted @ 2024-05-17 16:27 风陵南 阅读(28) 评论(0) 推荐(0)
摘要: 类和对象 C++面向对象的三大特性为:封装、继承、多态 封装 成员变量私有化,提供公共的getter和setter给外界去访问成员变量 封装的意义 将属性和行为作为一个整体,表现生活中的事物 将属性和行为加以权限控制 类在设计时,可以把属性和行为放在不同的权限下,加以控制 访问权限有三种: 1.pu 阅读全文
posted @ 2024-05-15 04:02 风陵南 阅读(43) 评论(0) 推荐(0)
摘要: 汇编指令 mov dest, src mov move的简称 将src的内容赋值给dest,类似于dest = src [地址值] 中扩号 [ ]里面放的都是内存地址 一个变量的地址值,是它所有字节地址中的最小值 word是2字节,dword是4字节(double word),qword是8字节(q 阅读全文
posted @ 2024-05-13 21:45 风陵南 阅读(359) 评论(0) 推荐(0)
摘要: 寄存器 程序的本质 软件/程序的执行过程 硬盘中程序或者软件打开后,会被装载到内存中,由CPU进行读取内存中的机器指令,再由CPU控制计算机进行相应操作 CPU组成 寄存器:信息存储 运算器:信息处理 控制器:控制其他器件进行工作 寄存器与内存 通常,CPU会先将内存中的数据存储到寄存器中,然后在对 阅读全文
posted @ 2024-05-13 20:33 风陵南 阅读(157) 评论(0) 推荐(0)
摘要: 汇编语言 汇编语言种类 8086汇编(16bit) x86汇编(32bit) x64汇编(64bit) ARM汇编(嵌入式、移动设备) ... 目前用最多的是x64汇编 x64汇编根据编译器的不同,有两种书写格式 Intel AT&T 汇编语言不区分大小写 学习汇编语言的两大知识点: 汇编指令 寄存 阅读全文
posted @ 2024-05-13 20:01 风陵南 阅读(87) 评论(0) 推荐(0)
摘要: list容器 简介 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列节点组成,节点可以在运行时动态生成。每个节点包括两部分:一个是存储数据元素的数据域,另一个是存储下一节点的指针域。 相较于vector的连续线性空间,list就显得复 阅读全文
posted @ 2024-05-13 03:07 风陵南 阅读(71) 评论(0) 推荐(0)
摘要: deque 容器 deque (读作deck)是“doble-ended-queue”的缩写,和vector一样都是STL的容器 deque是双端数组,而vector是单端 单端与双端:vector 在首部插入数据时,会在末端开辟新位置,然后整体移动过去,而deque在首部插入数据时,能够直接在首部 阅读全文
posted @ 2024-05-13 02:23 风陵南 阅读(60) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 10 ··· 18 下一页