avatar
文章
41
标签
16
分类
6
首页
时间轴
标签
分类
关于
首页
时间轴
标签
分类
关于

qyhome

常见算法的空间复杂度和时间复杂度
发表于2025-07-18|leetcode|C++•leetcode
以下是常见算法的时间复杂度和空间复杂度总结,按算法类型分类,并附典型示例: 一、排序算法 算法 平均时间复杂度 最坏时间复杂度 空间复杂度 是否稳定 冒泡排序 O(n²) O(n²) O(1) 是 选择排序 O(n²) O(n²) O(1) 否 插入排序 O(n²) O(n²) O(1) 是 快速排序 O(n log n) O(n²) O(log n) 否 归并排序 O(n log n) O(n log n) O(n) 是 堆排序 O(n log n) O(n log n) O(1) 否 计数排序 O(n + k) O(n + k) O(n + k) 是 桶排序 O(n + k) O(n²) O(n + k) 是 基数排序 O(n × k) O(n × k) O(n +...
C++20的ranges::命名空间
发表于2025-07-18|C++基础知识|C++•容器•stl•数据结构
在 C++20 中,<algorithm>头文件中的许多算法被引入了 std::ranges命名空间,这些算法支持范围(Range)概念,提供了更现代、更安全的接口。以下是 C++20 std::ranges中主要的算法分类和示例: 1. 不修改序列的算法(Non-modifying) 查找类: ranges::find/ ranges::find_if/ ranges::find_if_not ranges::find_first_of ranges::adjacent_find ranges::search/ ranges::search_n ranges::find_end ranges::binary_search(需范围有序) ranges::lower_bound/ ranges::upper_bound/ ranges::equal_range(需范围有序) 计数类: ranges::count/...
Linux基本命令
发表于2025-07-17|计算机基础知识|计算机基础知识•操作系统
1. 查CPU和IP命令 查CPU信息: lscpu # 查看CPU架构信息cat /proc/cpuinfo # 详细CPU信息 查IP地址: ip a # 推荐(新版)ifconfig # 旧版(需安装net-tools)hostname -I # 仅显示IP 2. 常用Linux命令分类 文件操作:ls, cp, mv, rm, chmod 文本处理:cat, grep, sed, awk, head/tail 系统监控:top, ps, free, df, netstat 权限管理:chown, chmod, sudo 网络工具:ping, curl, wget, ssh 3. cp和chmod 777含义 cp:复制文件/目录 cp file1 file2 # 复制文件cp -r dir1 dir2 # 递归复制目录 chmod...
C++求最大公约数
发表于2025-06-29|计算机基础知识|C++•数学公式
C++ 求最大公约数(GCD)的方法详解 最大公约数(Greatest Common Divisor,GCD)是指能够整除两个或多个整数的最大正整数。以下是几种在C++中求最大公约数的方法: 1. 辗转相除法(欧几里得算法) 这是最经典高效的求 GCD 算法,基于以下原理: \[ gcd(a, b) = gcd(b, a \% b) \] #include <iostream>// 递归实现int gcd_recursive(int a, int b) { if (b == 0) return a; return gcd_recursive(b, a % b);}// 迭代实现int gcd_iterative(int a, int b) { while (b != 0) { int temp = b; b = a % b; a = temp; } return a;}int main() { ...
每周LeetCode回顾-2
发表于2025-06-23|leetcode|C++•leetcode
633. 平方数之和 思路:双指针 对于给定的非负整数 \(c\)​,需要判断是否存在整数 \(a\)​ 和 \(b\)​,使得 \(a^2+b^2=c\)​。可以枚举 \(a\)​ 和 \(b\)​ 所有可能的情况,时间复杂度为 \(O(c^2)\)​。但是暴力枚举有一些情况是没有必要的。例如:当 \(c=20\)​ 时,当 \(a=1\)​ 的时候,枚举 \(b\)​ 的时候,只需要枚举到 \(b=5\)​ 就可以结束了,这是因为 \(1^2+5^2=25>20\)​。当 \(b>5\)​ 时,一定有 \(1^2+b^2>20\)​。 假设 \(a\leq b\),初始时 \(a=0\),\(b=\sqrt c\),进行如下操作: 如果 \(a^2+b^2=c\)​,我们找到了题目要求的一个解,直接返回 true; 如果 \(a^2+b^2<c\),此时需要将 \(a\) 的值加 \(1\),继续查找; 如果 \(a^2+b^2>c\),此时需要将 \(b\) 的值减 \(1\),继续查找。 当...
C++容器-string
发表于2025-06-16|C++基础知识|C++•容器•stl•数据结构
C++中的string容器详解 std::string是C++标准库中用于处理字符串的容器类,它提供了丰富的字符串操作功能,比C风格的字符数组(char[])更安全、更方便。 基本特性 动态大小:string可以动态调整大小,无需手动管理内存 丰富的操作:提供多种字符串操作方法 安全性:自动处理内存分配和释放,减少缓冲区溢出风险 兼容性:可以与C风格字符串互操作 头文件 使用string需要包含头文件: #include <string> 构造函数 string提供了多种构造函数: std::string s1; // 默认构造,空字符串std::string s2("Hello"); // 从C风格字符串构造std::string s3(s2); // 拷贝构造std::string s4(5, 'x'); // 构造包含5个'x'的字符串std::string s5(s2.begin(),...
C++中常用的数学函数
发表于2025-06-09|C++基础知识|C++
在C++中,常用的数学函数主要通过 <cmath> 头文件提供(C++中也可用 <math.h>,但推荐使用C++风格的头文件)。以下是一些常用的数学函数及其说明: 1. 基本运算 函数 描述 示例 abs(x) 绝对值(整数,<cstdlib>) abs(-5) → 5 fabs(x) 浮点数的绝对值 fabs(-3.14) → 3.14 fmod(x, y) 浮点数取余 fmod(10.5, 3.0) → 1.5 remainder(x, y) 带符号的余数(IEEE规范) remainder(10.5, 3.0) → -0.5 fmax(x, y) 返回最大值 fmax(2.0, 3.0) → 3.0 fmin(x, y) 返回最小值 fmin(2.0, 3.0) → 2.0 2....
阿里云oss-picGo-typora搭建图床
发表于2025-06-09|问题记录|Hexo•Markdown•阿里云OSS•picGo•typora
Typora 图床设置 前言:因为开始记录博客,发现本地存储的图片路径与服务器路径总是不太一样,总是复制粘贴又不太方便,在此选择搭建图床来进行使用。 软件介绍 我们需要将图片上传到云(专业称图床)上,而云有多种,如下: 阿里云oss 专业,快速,存储空间便宜,一年9块钱40G。但是下行流量需要另外收费。 github...
C++中sort函数的详细使用指南
发表于2025-06-06|C++基础知识|C++•stl
C++ sort 算法的详细使用指南 sort 是 C++ STL 中最常用的排序算法,定义在 <algorithm> 头文件中。它使用高效的排序算法(通常是快速排序的变体)对序列进行排序。 基本用法 1. 默认排序(升序) #include <algorithm>#include <vector>#include <iostream>int main() { std::vector<int> nums = {4, 2, 5, 3, 1}; // 默认升序排序 std::sort(nums.begin(), nums.end()); for (int num : nums) { std::cout << num << " "; } // 输出: 1 2 3 4 5} 2. 降序排序 #include...
C++中常用的STL算法
发表于2025-06-06|C++基础知识|C++•stl
C++ 中常用的 STL 算法 STL (Standard Template Library) 提供了大量实用的算法,主要定义在 <algorithm> 头文件中。以下是一些最常用的 STL 算法: 非修改序列操作 for_each - 对范围内的每个元素应用函数 std::vector<int> v{1, 2, 3};std::for_each(v.begin(), v.end(), [](int i){ std::cout << i << " "; }); all_of/any_of/none_of - 检查范围中元素是否满足条件 bool all_even = std::all_of(v.begin(), v.end(), [](int i){ return i%2 == 0; }); 修改序列操作 copy/copy_if - 复制元素 std::vector<int>...
12345
avatar
QY
学习记录
文章
41
标签
16
分类
6
Follow Me
最新文章
CPP生成随机数2025-08-27
CMake调库2025-08-26
stoi的使用方法2025-08-23
数论2025-08-20
C++滑动窗口算法模板2025-08-20
分类
  • C++基础知识10
  • leetcode3
  • 个人博客1
  • 数据结构与算法1
  • 计算机基础知识4
  • 问题记录4
标签
C++容器stl数据结构计算机基础知识排序算法leetcode数学公式HexoMarkdownLatex操作系统Git阿里云OSSpicGotypora
归档
  • 八月 2025 10
  • 七月 2025 13
  • 六月 2025 11
  • 五月 2025 7
网站信息
文章数目 :
41
本站总字数 :
46.4k
本站访客数 :
本站总浏览量 :
最后更新时间 :
©2025 By QY
框架 Hexo 7.3.0|主题 Butterfly 5.3.5
赣ICP备2025062752号-1