自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (1)
  • 收藏
  • 关注

原创 【通信网络】01 IP网络基础

IP网络基础

2022-07-31 00:05:19 215 1

原创 【装机指南】显示器篇

显示器作为电脑的重要部件,直接影响到我们的观感体验,所以显示器的选择要非常谨慎。

2019-07-07 14:02:34 860

原创 证件照修图指南

证件照有什么要求?

2019-07-07 11:47:42 4067

原创 排序算法 2:选择排序(C++版)

排序算法 2:选择排序(C++版)1. 算法描述2. 动图演示3. 代码实现选择排序(Selection Sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。1. 算法描述n个记录的直接选择排序可经过n-1趟直接选择排序得...

2018-12-11 21:14:15 2022

原创 排序算法 1:冒泡排序(C++版)

排序算法 1:冒泡排序(C++版)1. 冒泡排序1.1 算法描述1.2 动图演示1.3 代码实现2. 改进冒泡排序2.1 改进思想2.2 代码实现3. 鸡尾酒排序3.1 改进思想3.2 代码实现1. 冒泡排序冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就...

2018-12-11 21:12:11 321

原创 字符串匹配原理及实现(C++版)

字符串匹配原理及实现(C++版)1. 字符串匹配概念2. BF3. KMP4. BM5. 性能总结1. 字符串匹配概念2. BF3. KMP4. BM5. 性能总结

2018-12-05 16:09:01 13287 3

原创 数据结构实现 10.2:映射_基于AVL树实现(C++版)

数据结构实现 10.2:映射_基于AVL树实现(C++版)1. 概念及基本框架2. 基本操作程序实现2.1 增加操作2.2 删除操作2.3 修改操作2.4 查找操作2.5 其他操作3. 算法复杂度分析3.1 增加操作3.2 删除操作3.3 修改操作3.4 查找操作4. 完整代码1. 概念及基本框架映射 是一种高级数据结构,其实现方法也不唯一,但存储上使用 链式存储(即内存的物理空间是不连续的)...

2018-11-26 19:14:09 402 1

原创 数据结构实现 10.1:AVL树(C++版)

数据结构实现 10.1:自平衡树(C++版)1. 概念及基本框架2. 基本操作程序实现2.1 增加操作2.2 查找操作2.3 其他操作3. 算法复杂度分析3.1 增加操作3.2 查找操作4. 完整代码1. 概念及基本框架线段树 是一种二分搜索树,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。如上图中,每个结点可以存一些这个区间内的元素的性质,比如:和、最大值、最小值...

2018-11-26 15:48:40 290

原创 数据结构实现 9.2:并查集_树思想实现(C++版)

数据结构实现 9.2:并查集_树思想实现(C++版)1. 概念及基本框架2. 基本操作程序实现2.1 联合操作2.2 查找操作2.3 其他操作3. 算法复杂度分析3.1 联合操作3.2 查找操作4. 完整代码1. 概念及基本框架9.1 我们利用数组的结构实现了并查集,这一节我们利用树的思想来实现并查集。(但本质上还是数组,只是逻辑上的树形结构)如上图,不同的颜色表示不同的集合,里面的字母表...

2018-11-26 11:16:02 391

原创 数据结构实现 9.1:并查集_数组结构实现(C++版)

数据结构实现 9.1:并查集(C++版)1. 概念及基本框架2. 基本操作程序实现2.1 增加操作2.2 查找操作2.3 其他操作3. 算法复杂度分析3.1 增加操作3.2 查找操作4. 完整代码1. 概念及基本框架线段树 是一种二分搜索树,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。如上图中,每个结点可以存一些这个区间内的元素的性质,比如:和、最大值、最小值……...

2018-11-26 10:40:58 487

原创 数据结构实现 8.1:字典树(C++版)

数据结构实现 8.1:字典树(C++版)1. 概念及基本框架2. 基本操作程序实现2.1 增加操作2.2 查找操作2.3 其他操作3. 算法复杂度分析3.1 增加操作3.2 查找操作4. 完整代码1. 概念及基本框架线段树 是一种二分搜索树,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。如上图中,每个结点可以存一些这个区间内的元素的性质,比如:和、最大值、最小值……...

2018-11-25 22:27:46 588

原创 数据结构实现 7.1:线段树(C++版)

数据结构实现 7.1:线段树(C++版)1. 概念及基本框架2. 基本操作程序实现2.1 构建操作2.2 查找操作2.3 其他操作3. 算法复杂度分析3.1 构建操作3.2 查找操作4. 完整代码1. 概念及基本框架线段树 是一种二分搜索树,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。如上图中,每个结点可以存一些这个区间内的元素的性质,比如:和、最大值、最小值……...

2018-11-24 21:26:42 1524

原创 数据结构实现 6.4:优先队列_基于链表实现(C++版)

数据结构实现 6.4:优先队列_基于链表实现(C++版)1. 概念及基本框架2. 基本操作程序实现2.1 入队操作2.2 出队操作2.3 查找操作2.4 其他操作3. 算法复杂度分析3.1 入队操作3.2 出队操作3.3 查找操作4. 完整代码1. 概念及基本框架6.3 中通过 动态数组 实现了 优先队列 ,这一节我们通过链表来实现优先队列。优先队列 是 队列 的一种,所以有队列的基本特性...

2018-11-24 15:58:57 1118

原创 数据结构实现 6.3:优先队列_基于动态数组实现(C++版)

数据结构实现 6.3:优先队列_基于动态数组实现(C++版)1. 概念及基本框架2. 基本操作程序实现2.1 入队操作2.2 出队操作2.3 查找操作2.4 其他操作3. 算法复杂度分析3.1 入队操作3.2 出队操作3.3 查找操作4. 完整代码1. 概念及基本框架6.2 中通过 最大二叉堆 实现了 优先队列 ,这一节我们通过动态数组来实现优先队列。优先队列 是 队列 的一种,所以有队列...

2018-11-24 15:45:31 565

原创 数据结构实现 6.2:优先队列_基于最大二叉堆实现(C++版)

数据结构实现 6.2:优先队列_基于最大二叉堆实现(C++版)1. 概念及基本框架2. 基本操作程序实现2.1 入队操作2.2 出队操作2.3 查找操作2.4 其他操作3. 算法复杂度分析3.1 入队操作3.2 出队操作3.3 查找操作4. 完整代码1. 概念及基本框架队列 是一种现实中很常见的数据结构,但有时候队列排序不仅仅依靠入队时间来决定,而是不同的元素有不同的优先级。显然,通过 6.1...

2018-11-14 19:37:10 340 2

原创 数据结构实现 6.1:二叉堆_基于动态数组实现(C++版)

数据结构实现 6.1:二叉堆_基于动态数组实现(C++版)1. 概念及基本框架1.1 满二叉树1.2 完全二叉树2. 基本操作程序实现2.1 增加操作2.2 删除操作2.3 查找操作2.4 其他操作3. 算法复杂度分析3.1 增加操作3.2 删除操作3.3 查找操作4. 完整代码1. 概念及基本框架二叉堆 是一种高级数据结构,这里我们通过 1.1 中的 动态数组 来实现。因为二分搜索树操作的...

2018-11-14 18:27:47 363 2

原创 数据结构实现 5.2:映射_基于链表实现(C++版)

数据结构实现 5.2:映射_基于链表实现(C++版)1. 概念及基本框架2. 基本操作程序实现2.1 增加操作2.2 删除操作2.3 修改操作2.4 查找操作2.5 其他操作3. 算法复杂度分析3.1 增加操作3.2 删除操作3.3 修改操作3.4 查找操作4. 完整代码1. 概念及基本框架.在 5.1 中我们通过 二分搜索树 来实现了映射,这一节我们通过 链表 来实现映射。映射 的基本...

2018-11-13 15:10:07 412

原创 数据结构实现 5.1:映射_基于二分搜索树实现(C++版)

数据结构实现 5.1:映射_基于树实现(C++版)1. 概念及基本框架2. 基本操作程序实现2.1 增加操作2.2 删除操作2.3 修改操作2.4 查找操作2.5 其他操作3. 算法复杂度分析3.1 增加操作3.2 删除操作3.3 修改操作3.4 查找操作4. 完整代码1. 概念及基本框架映射 是一种高级数据结构,其实现方法也不唯一,但存储上使用 链式存储(即内存的物理空间是不连续的)。这一节...

2018-11-13 13:28:25 387

原创 数据结构实现 4.2:集合_基于链表实现(C++版)

数据结构实现 4.2:集合_基于链表实现(C++版)1. 概念及基本框架2. 基本操作程序实现2.1 增加操作2.2 删除操作2.3 查找操作2.4 其他操作3. 算法复杂度分析3.1 增加操作3.2 删除操作3.3 查找操作4. 完整代码1. 概念及基本框架在4.1 中我们通过 二分搜索树 实现了集合,这一节我们通过 链表 来实现集合。集合 的基本特性依然要满足:集合内的元素 不能重复 ...

2018-11-13 11:01:18 775 2

原创 数据结构实现 4.1:集合_基于二分搜索树实现(C++版)

数据结构实现 4.1:集合_基于树实现(C++版)1. 概念及基本框架2. 基本操作程序实现2.1 增加操作2.2 删除操作2.3 查找操作2.4 其他操作3. 算法复杂度分析3.1 增加操作3.2 删除操作3.3 查找操作4. 完整代码1. 概念及基本框架集合 是一种高级数据结构,其实现方法也不唯一,但存储上使用 链式存储(即内存的物理空间是不连续的)。这一节我们通过 二分搜索树 来实现集合...

2018-11-13 10:12:28 398

原创 数据结构实现 3.1:二分搜索树(C++版)

数据结构实现 3.1:二分搜索树(C++版)1. 概念及基本框架2. 基本操作程序实现2.1 增加操作2.2 删除操作2.3 查找操作2.4 遍历操作2.5 其他操作3. 算法复杂度分析3.1 增加操作3.2 删除操作3.3 查找操作4. 完整代码1. 概念及基本框架二分搜索树 是一种 半线性结构 ,而且存储上属于 链式存储(即内存的物理空间是不连续的),是树形结构的一种。二分搜索树结构如下图...

2018-11-12 23:14:51 706

原创 数据结构实现 2.3:链表队列(C++版)

数据结构实现(七):链表队列(C++版)1. 概念及基本框架2. 基本操作程序实现2.1 入队操作2.2 出队操作2.3 查找操作2.4 其他操作3. 算法复杂度分析3.1 入队操作3.2 出队操作3.3 查找操作4. 完整代码1. 概念及基本框架在前面第三节中,我们通过 动态数组 实现了 队列 这种数据结构。当然,队列也可以通过 链表 来实现所谓的 链表队列 。链表队列的结构如上图所示,...

2018-11-10 20:52:05 221

原创 数据结构实现 2.2:链表栈(C++版)

数据结构实现(六):链表栈(C++版)1. 概念及基本框架2. 基本操作程序实现2.1 入栈操作2.2 出栈操作2.3 查找操作2.4 其他操作3. 算法复杂度分析3.1 入栈操作3.2 出栈操作3.3 查找操作4. 完整代码1. 概念及基本框架通过第五节,我们知道链表虽然整体的操作时间复杂度是 O(n) 级别的,但是如果只对头结点进行操作,那么时间复杂度是 O(1) 级别的,这很类似于栈(单...

2018-11-10 13:58:27 561

原创 数据结构实现 2.1:链表(C++版)

数据结构实现(五):链表(C++版)1. 概念及基本框架2. 基本操作程序实现2.1 增加操作2.2 删除操作2.3 修改操作2.4 查找操作2.5 其他操作3. 算法复杂度分析3.1 增加操作3.2 删除操作3.3 修改操作3.4 查找操作4. 完整代码1. 概念及基本框架链表 是一种 线性结构 ,而且存储上属于 链式存储(即内存的物理空间是不连续的),是线性表的一种。链表结构如下图所示:...

2018-11-10 11:01:31 418

原创 数据结构实现 1.4:循环队列(C++版)

数据结构实现(四):循环队列(C++版)1. 概念及基本框架2. 基本操作程序实现2.1 入队操作2.2 出队操作2.3 查找操作2.4 其他操作3. 算法复杂度分析3.1 入队操作3.2 出队操作3.3 查找操作4. 完整代码1. 概念及基本框架通过第三节我们知道,数组队列 在出队操作中需要花费 O(n) 的时间复杂度,原因在于出队时需要移动大量元素。如果我们可以循环利用空间,那么问题就迎刃...

2018-11-09 16:46:09 410 1

原创 数据结构实现 1.3:数组队列(C++版)

数据结构实现(三):数组队列(C++版)1. 概念及基本框架2. 基本操作程序实现2.1 入队操作2.2 出队操作2.3 查找操作2.4 其他操作3. 算法复杂度分析3.1 入队操作3.2 出队操作3.3 查找操作4. 完整代码1. 概念及基本框架队列 可以看做一种特殊的 数组 ,所以我使用第一节实现的 动态数组 来实现队列这种数据结构。当然,队列也可以通过其他方式来实现。因为该队列是通过动态...

2018-11-09 13:34:56 1472

原创 数据结构实现 1.2:数组栈(C++版)

数据结构实现(二):数组栈(C++版)1. 概念及基本框架2. 基本操作程序实现2.1 入栈操作2.2 出栈操作2.3 查找操作2.4 其他操作3. 算法复杂度分析3.1 入栈操作3.2 出栈操作3.3 查找操作4. 完整代码1. 概念及基本框架栈 可以看做一种特殊的 数组 ,所以我使用第一节实现的 动态数组 来实现栈这种数据结构。当然,栈也可以通过其他方式来实现。因为该栈是通过动态数组实现的...

2018-11-09 11:05:35 656

原创 数据结构实现 1.1:动态数组(C++版)

数据结构实现(一):动态数组(C++版)1. 概念及基本框架2. 基本操作程序实现2.1 增加操作2.2 删除操作2.3 修改操作2.4 查找操作2.5 其他操作3. 算法复杂度分析3.1 增加操作3.2 删除操作3.3 修改操作3.4 查找操作4. 完整代码1. 概念及基本框架数组 是一种 线性结构 ,而且存储上属于 顺序存储(即内存的物理空间是连续的),也就是线性表中的 顺序表 。数组结构...

2018-11-08 16:33:29 2077 3

原创 C++中不同类型对象的存放位置

C++中不同类型对象的存放位置1. 存储区域2. 不同类型对象的存储2.1 全局对象2.2 局部对象2.3 静态局部对象2.4 动态对象在C++中,定义的对象被放在不同的区域中,以下就各个区域以及不同类型对象的存储情况作简要介绍。1. 存储区域栈(Stack)是存在于作用域(scope)的一块内存空间。例如当你调用函数时,函数本身就会形成一个栈用来放置它所接收的参数,以及返回地址。堆(H...

2018-11-07 17:30:49 5695 1

原创 C++中的深拷贝与浅拷贝

C++中的深拷贝与浅拷贝1. 概念2. 实际应用2.1 构造函数2.2 拷贝构造函数2.3 拷贝赋值函数2.4 析构函数1. 概念在C++涉及指针的部分中,有 深拷贝和 浅拷贝 两个概念,让我们通过例子来理解一下。C++中,字符串是通过首地址来表示的,如图所示:图中,字符串用 s1 表示,而 s1 是字符串 “HELLO” 的首地址(字符串以 ‘\0’ 作为结束标志),通过寻址,即可实现字...

2018-11-06 21:24:18 303

原创 九大编程语言

九大编程语言1. Java2. C3. Python4. C++5. C#6. Ruby7. Objective-C8. PHP9. JavaScript10. 总结如今 Python、Java、C、C ++、JavaScript 等编程语言五花八门,而各种编程语言也各有优劣,那么,我们该如何去选择?其实,不同的语言适合于不同的领域 ,以下就九大编程语言的简介、用途、发展趋势等做简单介绍,供...

2018-11-05 11:30:56 4782 5

原创 C++类的构造函数和析构函数

C++面向对象编程小贴士(一)1. 头文件(Header)中的防卫式声明2. 构造函数(constructor)C++编程中有一些规范要注意。1. 头文件(Header)中的防卫式声明在头文件complex.h中,为了避免已经存在该名字的头文件,可以进行防卫式的声明,形式如下:#ifndef __COMPLEX__#define __COMPLEX__...#endif2. 构造...

2018-11-02 21:50:34 976

原创 C++中关键字const的用法

C++中关键字const的用法1. 定义常量2. 函数内const是C++的一个关键字,现在对它的用法做一个小结。1. 定义常量在C中,如果要频繁的使用某一个常量,可以利用宏定义来利用一个符号定义这个常量,以后用到这个常量的地方就用这个符号代替即可,这样修改这个常量的值也方便了很多。在C++中,我们可以利用const替代宏定义,具体代码如下:#define M 15const int N...

2018-11-02 21:10:48 919 1

原创 C/C++避免头文件重复包含的方法

C/C++避免头文件重复包含的方法1. #ifndef2. #pragma once3. 混合使用在实际的编程过程中,因为会使用多个文件,所以在文件中不可避免的要引入一些头文件,这样就可能会出现一个头文件被 include 多次,在C/C++中有几种不同的方式可以解决这个问题,总体功能相差不大,但依然存在细微差别。1. #ifndef格式如下:#ifndef __COMPLEX__#de...

2018-11-01 14:09:54 7983

原创 PS常用快捷键

PS常用快捷键1. PS工具快捷键2. 常用的通用快捷键2.1 文档操作2.2 画面显示操作2.3 其他操作3. 图层操作的快捷键4. 图像调整操作快捷键5. 移动工具模式快捷键6. 选区类工具模式快捷键6.1 选框工具模式6.2 套索工具模式6.3 快速选择工具模式7. 画笔工具模式快捷键声明:本文是Photoshop CC 2017的快捷键,其他版本可能略有差异。1...

2018-10-25 21:51:17 3905

原创 印刷品常用术语

印刷品常用术语1. PPI2. DPI3. LPI4. CMYK5. 出血1. PPIPPI (Pixels Per Inch) 是像素密度 或 分辨率 ,表示的是 图片中每英寸所拥有的像素数量 。常用印刷品的 PPI 常规要求如下:印刷品种类PPI洗印照片300或以上杂志、名片等印刷物300海报、高清写真96~200网络图片、网页界面...

2018-10-23 21:02:26 691

原创 常见海报的尺寸

常见海报的尺寸1. 一般海报尺寸(普通海报尺寸)2. 宣传海报尺寸、商用海报尺寸3. 标准海报尺寸4. 电影海报尺寸5. 招聘海报尺寸6. 印刷纸张规格7. 展板(KT板)8. X展架,易拉宝尺寸1. 一般海报尺寸(普通海报尺寸)42cm × 57cm (宽 × 高),大度四开57cm × 84cm (宽 × 高),大度对开2. 宣传海报尺寸、商用海报尺寸50cm × 70cm (宽 ×...

2018-10-21 20:47:14 169383

原创 C++分割带逗号的字符串

C++分割带逗号的字符串1. 解决方法2. 代码实现我们知道,C++默认通过空格(或回车)来分割字符串输入,即区分不同的字符串输入。但是有时候,我们得到的字符串是用逗号来分割的,给我们使用者带来极大的不便。那么,有什么办法能更加方便的使用这些字符串呢?其实,C++提供了一种方法(我目前所知道的)来解决这个问题。1. 解决方法C++提供了一个类 istringstream ,其构造函数...

2018-09-24 10:27:53 25433 1

原创 [LeetCode] 279. Perfect Squares 完全平方数

[LeetCode] 279. Perfect Squares 完全平方数问题描述:给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。示例 1:输入: n = 12输出: 3 解释: 12 = 4 + 4 + 4.示例 2:输入: n = 13输出: 2解释: 13 = 4 + 9.1. 数...

2018-09-23 10:15:43 3049

原创 C++中cout的使用

C++中cout的使用1. cout使用的三种方式2. cout和i/i++/++i的组合使用3. 以不同进制输出数字4. 输出数字位数的控制5. 强制显示小数点和正负号6. 设置宽度和对齐方式7. 设置填充字符8. iomanip库用法总结cout 是C++中 ostream 类型的对象,该类被封装在 < iostream > 库中,该库定义的名字都在命名空间 std 中,所以 c...

2018-09-21 08:59:46 201592 15

数据结构实现(C++版)

内含资源如下: 1.基本数据结构 1.1.Array ........... 动态数组 1.2.LinkedList ... 链表 1.3.BST .............. 二分搜索树 1.4.MapBST ..... 二分搜索树(用于实现映射) 1.5.AVLTree ...... AVL树 2.接口 2.1.Queue ........... 队列接口 2.2.Stack .............. 栈接口 2.3.Set .................. 集合接口 2.4.Map ............... 映射接口 2.5.Merger .......... 自定义函数接口 2.6.UnionFind ..... 并查集接口 3.高级数据结构 3.1.ArrayQueue .......................... 队列_基于动态数组实现 3.2.LinkedListQueue .................. 队列__基于链表实现 3.3.LoopQueue ........................... 循环队列_基于动态数组实现 3.4.PriorityQueue ....................... 优先队列_基于最大二叉堆实现 3.5.ArrayPriorityQueue ............. 优先队列_基于动态数组实现 3.6.LinkedListPriorityQueue ..... 优先队列_基于链表实现 3.7.ArrayStack ............................. 栈_基于动态数组实现 3.8.LinkedListStack ..................... 栈_基于链表实现 3.9.BSTSet ..................................... 集合_基于二分搜索树实现 3.10.LinkedListSet ....................... 集合_基于链表实现 3.11.BSTMap ................................ 映射_基于二分搜索树实现 3.12.AVLTreeMap ....................... 映射_ 基于AVL树实现 3.13.LinkedListMap .................... 映射_基于链表实现 3.14.MaxHeap ............................. 最大二叉堆 3.15.SegmentTree ...................... 线段树 3.16.Trie ......................................... 字典树 3.17.QuickFind ............................ 并查集_基于数组实现 3.18.QuickUnion ......................... 并查集_基于树思想实现

2018-11-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除