题目
给定你一个长度为 $n$ 的整数数列。
请你使用快速排序对这个数列按照从小到大进行排序,并将排好序的数列按顺序输出。
输入格式
输入共两行,第一行包含整数 $n$ 。
第二行包含 $n$ 个整数(所有整数均在 $1∼109$ 范围内),表示整个数列。
输出格式
输出共一行,包含 $n$ 个整数,表示排好序的数列。
数据范围
$1≤n≤100000$
输入样例:
5
3 1 2 4 5
输
本章给大家带来的是八大排序中的选择排序和堆排序。选择排序为什么被称为最烂的排序?堆排序如何来操作?最开始如何对数组建堆?
在笔者上一篇文章《驱动开发:应用DeviceIoContro开发模板》简单为大家介绍了如何使用DeviceIoContro模板快速创建一个驱动开发通信案例,但是该案例过于简单也无法独立加载运行,本章将继续延申这个知识点,通过封装一套标准通用模板来实现驱动通信中的常用传递方式,这其中包括了如何传递字符串,传递整数,传递数组,传递结构体等方法。可以说如果你能掌握本章模板精讲的内容基本上市面上的功能都可
某日二师兄参加XXX科技公司的C++工程师开发岗位第27面:
面试官:知道std::unordered_set/std::unordered_map吗?
二师兄:知道。两者都是C++11引入的新容器,和std::set和std::map功能类似,key唯一,unordered_map的value可变。
二师兄:不同于set/map,unordered_set/unordered_map都是无序容
1 IT工程师的生活
1.1 编辑代码, coding ,写代码
vc++6.0
记事本
....
vscode : 微软公司开发的一个跨平台的开源的,
重点 :
代码规范
什么是代码规范? B
A 代码 B 规范 C 代码&规范
a : 代码要缩进
缩进就是缩进去
为什么要缩进? 让代码更加清晰,更有层次感.
如何来缩进?
缩进用tab键,一个缩进用一个ta
再谈构造函数
构造函数体赋值
在实例化对象时,编译器会通过调用构造函数给对象中的各个成员变量一个合适的初始值:
class Date {
public:
//构造函数
Date(int year = 2023,int month = 6,int day = 5)
{
//_year可以多次赋值
_year = year;
_year = 2024;
_
一、x86下IsDebuggerPresent反调试以及反反调试
1、反调试
进程结构体PEB偏移0x2处是一个标志位,当当前程序在调试状态下时,这个标志位就会被改变:
nt!_PEB
+0x000 InheritedAddressSpace : UChar
+0x001 ReadImageFileExecOptions : UChar
+0x002 BeingDebugged : UCha
一、32位系统
nt!_PEB
+0x000 InheritedAddressSpace : UChar
+0x001 ReadImageFileExecOptions : UChar
+0x002 BeingDebugged : UChar isDbg值,8字节
+0x003 BitField : UChar
+0x003 ImageUsesL
在笔者上一篇文章《驱动开发:内核取应用层模块基地址》中简单为大家介绍了如何通过遍历PLIST_ENTRY32链表的方式获取到32位应用程序中特定模块的基地址,由于是入门系列所以并没有封装实现太过于通用的获取函数,本章将继续延申这个话题,并依次实现通用版GetUserModuleBaseAddress()取远程进程中指定模块的基址和GetModuleExportAddress()取远程进程中特定模块
一、if语句if语句可分为4部分:1>单分支if语句;2>双分支if语句;3>多分支if语句;4>嵌套if语句;1>基本格式:if(表达式)
语句块1;总结:对于单分支if语句比较简单,在程序执行的过程中,只对满足条件的情况进行处理,对于不满足条件的情况不做任何处理。2>基本格式:if(表达式)
语句块1;
else
语句块2;例:判断一个数是否为奇
我们在学习当中,最常见的算法莫过于排序算法了!而常见的排序算法有八种,本章给大家讲解八大排序中的==直接插入排序和希尔排序
某日二师兄参加XXX科技公司的C++工程师开发岗位第27面:
面试官:用过std::set/std::map吗?
二师兄:用过。
面试官:能介绍一下二者吗?
二师兄:std::set是一个有序的集合,其中的元素是唯一的,即每个元素只能出现一次。一般用于去重和自动排序。
二师兄:std::map同样是有序组合,只不过它不止有key,每个key还对用一个value。其中key是唯一,不可重复,但是v
在上一篇文章里我们提到了,客户端发送了数据了之后,不管服务端还是客户端都close退出了,也就是说只能发送一次数据,这显然不符合实际的用途。那么该如何更改程序呢?
1、持续发送
要想实现持续发送,聪明的你可能想到了用循环,思路完全正确,但是循环多少次呢?实际的使用情况服务端一直都要运行,除非系统崩掉了,而客户端和服务端的长连接也要一直连着,除非客户端自己关闭了连接。所以我们的思路是双端都无限循环!
题目
求 $a$ 乘 $b$ 对 $p$ 取模的值。
输入格式
第一行输入整数 $a$ ,第二行输入整数 $b$ ,第三行输入整数 $p$ 。
输出格式
输出一个整数,表示a*b mod p的值。
数据范围
$1≤a,b,p≤10^{18}$
输入样例:
3
4
5
输出样例:
2
思路
$a * b % p$ 等价于 $b$ 个 $a$ 相加 $% p$
不妨设$b = 1001
最近学习了归并排序和快速排序,在这里写一篇博客用于复习并且检验自己是否有遗漏知识点的情况。归并排序归并排序的思想归并排序使用的思想为分治法。分治思想分为两部分第一部分为:分解,第二部分为合并。首先,将待排序的序列分成若干个子序列,每个子序列都是有序的。然后,再将这些有序的子序列合并成一个大的有序序列。其中合并过程是重点,需要使用额外的空间。合并过程可以借助两个指针和一个辅助数组,将两个有序的子序列
动态协议(RIP)简介:(路由信息协议)特点:1,rip计算路由得特点:一条路由能够传递给15跳设备,16跳不可达。2,rip协议分为两个版本,版本之间无法兼容3,rip通过跳数计算开销值4,启用rip协议的路由开启的三个计时器:(1)更新计时器:30S,启用rip协议的设备每隔30S进行更新一次路由(2)无效计时器:180S,当经过180S后还未收到更新报文时,会将路由标机为16跳(3)收集计时
直连路由目标网段 —— 路由信息。协议字段:代表当前路由的生产方式,direct——直连。优先级:路由默认优先级,direct-0,越小越优先。1.需求如下拓扑图两台路由两台PC
PC1 = 192.47.10.1/24 PC2 = 192.47.20.2/24
AR1 --- G0/0/0 = 12.47.1.1/24
G0/0/1 = 192.47.
地址下发(DHCP) 定义:DHCP动态主机配置协议是通过C/S框架构成,无需主机配置IP地址,动态分配IP地址,掩码,网关,DNS。1.需求:1.基础配置
pc1和pc3使用静态ip地址 —————— pc2和pc4使用DHCP获取地址
pc1=192.47.10.1
pc3=192.47.20.3
pc1、pc3属于vlan10 pc2、pc4属于vlan20
根据上述要求使得pc1-2能够
求1+2+3+...+n
题目:
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
数据范围: 0<n≤200
进阶: 空间复杂度 O(1) ,时间复杂度O(n)
示例1:
输入:5
返回值:15
示例2:
输入:1
返回值:1
思路一:
根据我们刚学的内部类的方法进行求解,通过调用n
让我们继续在《内核读写内存浮点数》的基础之上做一个简单的延申,如何实现多级偏移读写,其实很简单,读写函数无需改变,只是在读写之前提前做好计算工作,以此来得到一个内存偏移值,并通过调用内存写入原函数实现写出数据的目的。
以读取偏移内存为例,如下代码同样来源于本人的LyMemory读写驱动项目,其中核心函数为WIN10_ReadDeviationIntMemory()该函数的主要作用是通过用户传入的基
某日二师兄参加XXX科技公司的C++工程师开发岗位第26面:
面试官:deque用过吗?
二师兄:说实话,很少用,基本没用过。
面试官:为什么?
二师兄:因为使用它的场景很少,大部分需要性能、且需要自动扩容的时候使用vector,需要随机插入和删除的时候可以使用list。
面试官:那你知道STL中的stack是如何实现的吗?
二师兄:默认情况下,stack使用deque作为其底层容器,但也可以使
二叉树可以说是我们学习数据结构路上的第二个高的台阶,要想跨越它,需要我们*画图,多理解,多思考它的递归过。前面树的介绍和堆这两篇文章让我们对树有了一定的了解,对于二叉树的概念也有说到,因此,本章不会对二叉树的概念及介绍深入去讲,而是着重于它的实现,着重于理解递归。二叉树是后面一些高阶数据结构的基础,例如:红黑树,AVL树,B树等等。并且,我们在面试当中,也经常会被面试官要求手撕二叉树的相关OJ题,所以,二叉树这一章节就显得额外重要,可不敢遇到困难就退缩了。本章实现的二叉树是一棵普通的二叉树,与之前的数据结构有所不同,它的增删查改功能没那么有意义,那么什么时候有意义呢?我们在普通二叉树的基础上加上某一性质,使其能够通过这一性质来管理左右子树,这时候的增删查改就有意义了,例如**搜索二叉树等等。搜索二叉树:所以本章的二叉树,是打基础。我们在学习的过程中,一定要细细品味整个递归的过程,最好就是画图理解。接下来就带大家实现一棵属于自己的初等二叉树吧!
简介:第一次接触这种,就当日记来写吧。本人一个民办本科,成绩也只能算中等水平,学校开展的课程也仅限于能应付的了考试,即将毕业,深觉昔日学习时间都被各种事情耽误了,从2023年6月23日开始,重头再来学习。从C开始,争取毕业拿到一个好offer。在b站大学里看了鹏哥的C语言入门的四节课,感觉收获了很多。初步了解了代码的运行模式,借鉴教材,自己反复