摘要: 4种旋转操方法,6种双旋平衡因子特征,图文详解,一把到位 阅读全文
posted @ 2024-08-23 16:34 HJfjfK 阅读(247) 评论(0) 推荐(2) 编辑
摘要: 目录二叉搜索树基本概念常用结论用途二叉搜索树的性能分析二叉搜索树的操作查找插入删除代码实现BSTree.hpptest.cc 二叉搜索树 基本概念 二叉搜索树(BST,Binary Search Tree) 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: 若它的左子树不为空 阅读全文
posted @ 2024-08-20 23:44 HJfjfK 阅读(158) 评论(0) 推荐(2) 编辑
摘要: 目录一、树概念及结构树的概念树的相关概念树的表示二、二叉树概念及结构概念特殊的二叉树二叉树的性质二叉树的存储结构三、二叉树的顺序结构及实现二叉树的顺序结构堆的概念及结构堆的作用:堆的性质:计算孩子与父亲的下标关系1. 通过父亲得到左右孩子的下标2. 通过孩子找到父亲的下标如何得知自己是左孩子还是右孩 阅读全文
posted @ 2024-08-05 22:17 HJfjfK 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 目录Linux基本命令简单认识shell认识命令的基本格式:内建命令与外部命令查看命令的类型-type查看命令的使用方法-helpmkdirpwdtouchecho认识路径lscd认识热键/linux热键treenanocatgccstatrmrmdir基本认识--创建目录权限linux有多少条指令 阅读全文
posted @ 2024-08-03 22:52 HJfjfK 阅读(127) 评论(0) 推荐(0) 编辑
摘要: shared_future、async、packaged_task、promise、future、atomic、CAS、condition_variable、condition_variable_any、unique_lock、recursive_timed_mutex、this_thread、hardware_concurrency、yeild、sleep_for、sleep_until、wait_for、wait_until、duration、time_point、system_clock、steady_clock、 阅读全文
posted @ 2024-07-16 18:11 HJfjfK 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 目录智能指针场景引入 - 为什么需要智能指针?内存泄漏什么是内存泄漏内存泄漏的危害内存泄漏分类如何避免内存泄漏智能指针的使用及原理RAII简易例程智能指针的原理智能指针的拷贝问题智能指针的发展历史std::auto_ptr模拟实现auto_ptr例程:这种方案存在的问题:Boost库中的智能指针un 阅读全文
posted @ 2024-06-17 20:40 HJfjfK 阅读(399) 评论(0) 推荐(4) 编辑
摘要: 深入剖析C++多态的实现与原理-详解 (万字长文) 目录一、多态基础虚函数虚函数的继承虚类/虚基类重写/覆盖条件:概念:多态的条件其他的多态行为多态中子类可以不写virtual协变代码举例继承遗留问题解决析构函数具体解决方式:题目1答案:解析:题目2答案:C++11 override和finalfinal功能1:禁用继承使用场景:功能2:禁用重写使用 阅读全文
posted @ 2024-06-09 22:30 HJfjfK 阅读(1007) 评论(0) 推荐(4) 编辑
摘要: C++继承、多继承、菱形继承、虚继承 (万字) 继承 目录继承继承继承的访问权限子类赋值给父类赋值兼容规则“天然”的行为验证:1. 其他权限继承能否支持赋值兼容规则2.是否"天然",有没有产生临时变量继承中的作用域继承的隐藏参数继承的构造函数继承的拷贝构造继承的operator=继承的析构函数析构顺序析构的特殊处理坑:为什么析构函数需要特殊处理继 阅读全文
posted @ 2024-05-30 18:10 HJfjfK 阅读(473) 评论(0) 推荐(1) 编辑
摘要: 数组降维、函数栈帧、地址空间、可变参数原理剖析 (万字) 目录数组和指针多维数组的物理结构证明数组a和&a不同数组与指针的差别之一什么时候数组名表示整个数组?数组训练理解指针与数组的题所有的数组,都可以看成一维数组.所有的数组传参,最终都会降维成一维数组函数函数的地址函数的规范内存管理malloc返回给用户的只有申请内存的起始地址,那free是如何准确释放 阅读全文
posted @ 2024-05-22 00:01 HJfjfK 阅读(294) 评论(0) 推荐(3) 编辑
摘要: 预处理 目录预处理一、宏定义数值宏常量字符串宏常量用define宏定义注释符号?程序的编译过程预处理中宏替换和去注释谁先谁后?如何写一个更可靠的宏函数do-while-zero结构do-while-zero的评价宏定义中的空格宏只能在main函数上面定义吗?宏的作用范围#undef宏替换是在函数调用 阅读全文
posted @ 2024-05-19 10:25 HJfjfK 阅读(320) 评论(0) 推荐(0) 编辑
摘要: 对C语言符号的一些冷门知识运用的剖析和总结 (万字) 原理剖析 阅读全文
posted @ 2024-05-05 16:07 HJfjfK 阅读(345) 评论(4) 推荐(5) 编辑
摘要: C总结与剖析:关键字篇 目录C总结与剖析:关键字篇变量1.变量:内存上的某个位置开辟的空间2.变量的初始化3.为什么要有变量4.局部变量与全局变量5.变量的大小由类型决定6.任何一个变量,内存赋值都是从低地址开始往高地址1.1 关键字auto1.2 关键字register什么样的变量可以采用regi 阅读全文
posted @ 2024-04-25 20:29 HJfjfK 阅读(192) 评论(0) 推荐(1) 编辑
摘要: 空格/换行输入 末尾两个空格等于换行 空格输入方法: 使用全角英文的空格 使用  这样的标记 标题 (注:#号后加空格后面就是标题) # 1 一个#号就代表1号标题 ## 2 两个#号就代表2号标题 ### 3 #号越多字越小 #### 4 标题需要在#号后空一格才生效 ##### 5 举 阅读全文
posted @ 2024-04-08 11:01 HJfjfK 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 目录基本概念关联式容器键值对树形结构的关联式容器set描述set的使用map描述map的使用multiset描述multiset简单使用multimap描述底层结构 基本概念 关联式容器 在初阶阶段,我们已经接触过STL中的部分容器,比如:vector、list、deque、 forward_lis 阅读全文
posted @ 2024-08-23 18:00 HJfjfK 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 目录排序的概念内外部排序稳定与非稳定排序改进排序的指标图片 排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[ 阅读全文
posted @ 2024-08-21 08:00 HJfjfK 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 高精度计时器,时间精度可以达到1纳秒. 随机数生成器,可以实现各类随机数,本测试主要用于实现9成随机数下排序性能. 阅读全文
posted @ 2024-08-20 23:39 HJfjfK 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 目录基数排序实现原理基本步骤效率分析代码实现sortmain 基数排序 基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排 阅读全文
posted @ 2024-08-19 17:17 HJfjfK 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 目录输入/输出操纵符简单示例输入操纵符(Input Manipulators)输出操纵符(Output Manipulators)组合使用 输入/输出操纵符 输入输出操纵符是 C++ 中用于控制输入输出流格式的一组特殊函数或对象。它们通常用于格式化输出,例如设置宽度、精度、对齐方式等,而不涉及数据的 阅读全文
posted @ 2024-08-15 13:08 HJfjfK 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 算法库 -堆操作 基本操作 make_heap() (1)从一个元素范围创建出一个最大堆 (2)将区间内的元素转化为heap.--传比较器 push_heap() 对heap增加一个元素.将一个元素加入到一个最大堆 pop_heap() 对heap取出下一个元素.从最大堆中移除最大元素 sort_h 阅读全文
posted @ 2024-08-13 20:02 HJfjfK 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 目录内观排序/内省排序Introsort 的工作原理:总结:内省排序中的堆排序作用在 Introsort 中的具体作用:如何在 Introsort 中使用堆排序:示例代码中的堆排序部分:内省排序中插入排序(小区间优化)部分插入排序的工作原理:Introsort 中插入排序的使用:内省排序算法执行流程 阅读全文
posted @ 2024-08-12 11:33 HJfjfK 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 目录IP地址概念IP地址2A类地址B类地址C类地址D类地址E类地址特殊IP地址0.0.0.0三类私网地址默认网关默认子网掩码IP地址的分类广播地址主机号网络地址网络地址的确定示例计算网络地址步骤计算过程网络地址的含义CIDR表示法CIDR表示法的组成部分:示例 IP地址概念 分类: A类:000~1 阅读全文
posted @ 2024-08-11 22:44 HJfjfK 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 目录归并排序用途特性null优点与其他排序算法比较的优点缺点算法步骤递归实现时间/空间复杂度分析非递归实现归并与快排的区别 归并排序 归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序 阅读全文
posted @ 2024-08-06 22:59 HJfjfK 阅读(18) 评论(0) 推荐(1) 编辑
摘要: 目录希尔排序概述优缺点算法步骤代码实现 希尔排序 概述 希尔排序,也称递减增量排序算法,也称缩小增量排序,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。 希尔排序是基于插入排序的以下两点性质而提出改进方法的: 插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率; 阅读全文
posted @ 2024-08-06 21:50 HJfjfK 阅读(12) 评论(0) 推荐(1) 编辑
摘要: 目录快速排序快速排序要解决的几个问题算法步骤递归法空间复杂度: log2(n)1. hoare法基本原理时间复杂度分析代码实现1优化一 三数取中代码实现逻辑测试三数取中优化版本快排优化二 小区间优化代码实现测试2. 挖坑法3. 前后指针法4. 三路排序算法背景概念适用说明实现思路代码实现非递归版本为 阅读全文
posted @ 2024-08-06 20:48 HJfjfK 阅读(11) 评论(0) 推荐(1) 编辑
摘要: 目录堆排序堆排序的好处:算法步骤代码实现时间复杂度分析 堆排序 堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆排序可以说是一种利用堆的概念来排序的选择排序。分为两种方法 阅读全文
posted @ 2024-08-06 19:03 HJfjfK 阅读(7) 评论(0) 推荐(1) 编辑
摘要: 目录直接选择排序描述选择排序的缺点:算法步骤代码实现 直接选择排序 描述 选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了。 选择排序的缺点: 效率低下:选择排序的时间复杂度始终是 𝑂(� 阅读全文
posted @ 2024-08-06 18:02 HJfjfK 阅读(7) 评论(0) 推荐(1) 编辑
摘要: 目录冒泡排序描述冒泡排序的缺点:什么时候最快什么时候最慢特点评价:代码实现 冒泡排序 描述 冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经 阅读全文
posted @ 2024-08-06 17:01 HJfjfK 阅读(15) 评论(0) 推荐(1) 编辑
摘要: 目录插入排序描述应用分析时间复杂度空间复杂度算法步骤代码实现 插入排序 描述 插入排序,一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法。插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。在其实现过程使用双层循环,外 阅读全文
posted @ 2024-08-06 16:00 HJfjfK 阅读(10) 评论(0) 推荐(1) 编辑
摘要: 队列 队列的概念 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出的特点FIFO(First In First Out) 入队:进行插入操作的一端称为队尾 出队:进行删除操作的一端称为队头 链实栈代码实现 Ququq.h #pragma once #defi 阅读全文
posted @ 2024-08-06 13:05 HJfjfK 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 栈 栈的概念 一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。 出栈:栈的删除操作叫做出栈。出 阅读全文
posted @ 2024-08-06 12:04 HJfjfK 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 目录队列队列的概念链实栈代码实现Ququq.hQueue.c 队列 队列的概念 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出的特点FIFO(First In First Out) 入队:进行插入操作的一端称为队尾 出队:进行删除操作的一端称为队头 链实栈 阅读全文
posted @ 2024-08-06 11:03 HJfjfK 阅读(9) 评论(0) 推荐(0) 编辑