自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

转载 Mysql语句相关

mysql语句group by理解group by理解表1:test执行以下语句:select name from testgroup by name运行结果如图 表2:执行过程:1、FROM test:该句执行后,应该结果和表1一样,就是原来的表。2、FROM test Group BY name:该句执行后,我们想象生成了虚拟表3,如下所图所示,生成过程是这样的:group by name,那么找name那一列,具有相同name值的行,合并成一行,如对于name值为aa的,那么&

2021-12-04 15:12:07 95

转载 mysql数据库八股

数据库数据库设计三大范式第一范式第二范式第三范式数据库的事务事务的四大特性InnoDB如何保证事务的原子性、持久性和一致性数据库中多个事务同时进行可能会出现什么问题SQL的事务隔离级别有哪些?隔离级别是如何实现的?什么是MVCC?读提交和可重复读都基于MVCC实现,有什么区别?索引索引是啥?索引种类索引优缺点索引的数据结构InnoDB为什么用B+树**1、哈希表****2、二叉查找树****3、平衡二叉树(AVL)****4、平衡多路查找树(B-Tree)****5、B+树**聚簇索引非聚簇索引主键索引辅助

2021-12-02 15:53:03 195

原创 操作系统八股

操作系统进程和线程区别进程通信方法线程通信方法进程同步的方法线程同步方法进程和线程的应用场景python os模块常用命令调用fork()如何实现内核态和用户态的切换?什么是内核态和用户态?写时复制Linux启动过程死锁产生的原因死锁产生的条件死锁的处理方法常见的页面置换算法进程和线程区别进程是资源分配的最小单位,线程是CPU调度的最小单位一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程进程在执行过程中拥有独立的地址空间,而多个线程共享进程的地址空间。由于同一进程中的多个线程具

2021-09-24 10:07:44 223

转载 计算机网络八股文

计算机网络应用层DNS协议http协议http状态码和对应的信息http请求方法Get和post区别post请求的过程:get请求的过程:简述cookieOK响应DHCP协议表示层会话层传输层区别应用场景TCP为什么可靠TCP三握手为什么三握手TCP四挥手为什么TCP挥手需要4次为什么四次挥手释放连接时需要等待2MSL网络层数据报格式对于比较大的数据IP是如何分片的IPv6与IPv4的区别主要有以下几点时延是指一个报文或分组从一个网络的一端传送到另一个端所需要的时间。它包括了发送时延,传播时延,处理时延,排

2021-09-21 19:12:49 1235

原创 python相关(is和==的区别)

isis比较判断的是对象id====比较判断两个对象的value(值)是否相等x = y = [4,5,6]>>> z = [4,5,6]>>> x == yTrue>>> x == zTrue>>> x is yTrue>>> x is zFalse

2021-09-17 16:04:45 50

转载 python(垃圾回收机制)

python垃圾回收机制引用计数引用计数加1引用计数减1循环引用python默认采用的垃圾收集机制是『引用计数法 Reference Counting』。Python中实现对象的基石PyObject,有两个属性,一个是该对象的类型,还有一个就是引用计数(ob_refcnt)。引用计数原理:每个对象维护一个ob_ref字段,用来记录该对象当前被引用的次数,每当新的引用指向该对象时,它的引用计数ob_ref加1,每当该对象的引用失效时计数ob_ref减1,一旦对象的引用计数为0,该对象立即被回收,对象占

2021-09-11 16:24:49 124

转载 C++(内存分配)

内存分区在C/C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。自由存储区,就是那些由malloc等分配的内存块,他和堆是十分相似的,不过它是用free来结束自己的生命的。

2021-09-02 23:26:50 97

转载 C++相关(指针和引用)

C++primer中对对象的定义:对象是指一块能存储数据并具有某种类型的内存空间。一个对象a,它有值和地址&a,运行程序时,计算机会为该对象分配存储空间,来存储该对象的值,我们通过该对象的地址,来访问存储空间中的值。指针指针p也是对象,它同样有地址&p和存储的值p,只不过,p存储的数据类型是数据的地址。如果我们要以p中存储的数据为地址,来访问对象的值,则要在p前加解引用操作符"*"。对象有常量(const)和变量之分,既然指针本身是对象,那么指针所存储的地址也有常量和变量之分。指针

2021-09-02 15:57:55 86

转载 python相关(装饰器)

*args和**kwargs用法*的作用拆开数列’list’的数值作为位置参数,并把这些位置参数传给函数’fun’来调用。def fun(a,b,c): print(a,b,c) fun(1,2,3)#输出 1 2 3list=[1,2,3]fun(*list)#输出 1 2 3*args的作用它接收元组作为位置参数,而非是常见的参数列表。在这里,”args”是个元组。def fun(*args): print args fun(13)#输出(13,)fun(11,93

2021-08-29 23:15:49 68

转载 python相关(正则表达式和格式化输出)

python相关格式化输出%用法format用法正则表达式支持的元字符匹配模式re模块相关函数re.match()compile()函数search()函数findall()函数finditer()函数split()函数sub()函数subn()函数内置对象方法PatternMatch格式化输出%用法%o 八进制print('%o' % 20)24%d 十进制print('%d' % 20)20%x 十六进制print('%x' % 20)14%f 浮点数pr

2021-08-20 19:14:39 2618

转载 C++11新功能

lambda表达式链接: link.

2021-08-18 16:32:28 52

转载 python运算符以及优先级

集合运算符>>> a = set('abracadabra')>>> b = set('alacazam')>>> a {'a', 'r', 'b', 'c', 'd'}>>> a - b # 集合a中包含而集合b中不包含的元素{'r', 'd', 'b'}>>> a | b .

2021-08-18 16:02:43 65

原创 内存对齐~

内存对齐理论上,32位系统下,int占4byte,char占一个byte,那么将它们放到一个结构体中应该占4+1=5byte;但是实际上,通过运行程序得到的结果是8 byte,这就是内存对齐所导致的。//32位系统#include<stdio.h>struct{ int x; char y;}s;int main(){ printf("%d\n",sizeof(s); // 输出8 return 0;}内存对齐规则(1) 结构体第一个成员

2021-08-18 15:39:32 75

原创 python(numpy用法)

np.repeat()用法(1)numpy.repeat(a,repeats,axis=None);axis=None时候就会flatten当前矩阵,即变成一个行向量axis=0,沿着y轴复制,实际上增加了行数axis=1,沿着x轴复制,实际上增加列数repeats可以为一个数,也可以为一个矩阵(2)object(ndarray).repeat(repeats,axis=None)reshape()用法reshape(1,-1)转化成1行;reshape(2,-1)转换成两行;r

2021-08-06 12:13:03 93

转载 python(分隔符)

split用法split(sep,num)1、sep:分隔符,不写默认是空格,\n,\t分隔字符串;string="abc abc\ndef\t"print(string.split())#输出['abc','abc','def']2、num:分隔次数,有sep时按sep的值分隔;string1="sdwgfeahuidafhaiufaa"print(string1.split("a",1))#输出['adwgfe','huidafhaiufaa']分隔符在字符串第一个位置或者最后一

2021-08-05 22:51:47 8277

转载 python相关(赋值拷贝引用作用域)

python相关split用法分隔符在字符串第一个位置或者最后一个位置时当分隔符连续出现多次时多次分隔赋值,引用,拷贝,作用域赋值引用,拷贝变量作用域Local作用域Enclosing作用域Global作用域build-in作用域python命名空间规则增强赋值,共享引用可变对象,不可变对象函数传值?传引用修改全局的dict变量不用global关键字可变对象list的=和append/extend区别使用可变的默认参数split用法split(sep,num)1、sep:分隔符,不写默认是空格,\n,

2021-07-26 21:01:42 140

原创 排序方法(基数排序)

排序方法基数排序基本原理(1)创建10个桶分别给每位数0~9(2)遍历每个数位(个、十、百。。。)(3)遍历每个元素(4)将元素移到相应的桶中(5)每个桶从最小数位开始(6)当桶不为空(7)将元素恢复到数列中按照个位,0~9依次放入桶中从桶中依次放回原数列中按照十位,0~9依次放入桶中从桶中依次放回原数列中按照百位…代码实现//求最高数位int getmaxbit(vector<int> &arr){ int n=arr.size();

2021-04-20 20:32:37 103

原创 排序方法(归并排序)

排序方法归并排序基本原理(1)把数组从中间划分成两个子数组;(2)递归地把子数组划分成更小的子数组,直到子数组里面只有一个元素;(3)接着将两个已经有序的子序列合并成一个有序序列,比如上图中的最后一次合并,要将[4,5,7,8]和[1,2,3,6]两个已经有序的子序列,合并为最终序列[1,2,3,4,5,6,7,8],来看下实现步骤;代码实现//合并过程void merge(vector<int> &arr,int start,int mid,int end){

2021-04-20 10:27:08 53

原创 排序方法(快排)

排序方法快速排序基本原理(1) 选择基准值。(2) 将数组分成两个子数组:小于基准值的元素和大于基准值的元素。(3) 对这两个子数组进行快速排序。以33为基准以10为基准最后排序完成7,10,15,33代码实现class solution{ void quicksort(vector<int>& arr,int left,int right)//注意arr引用 { if(left>=right) { return; } int l

2021-04-16 12:38:18 68

转载 排序方法(堆排序)

排序方法堆排序首先 heapify创建一个堆最后一个根结点是最后一个结点n-1的parent结点,分别对每个根结点做heapify最后堆排序首先根结点和最后一个节点交换砍断最后一个结点对根结点做heapify,形成一个堆根结点做heapify,形成一个堆根结点和最后一个结点做交换砍断最后一个结点,依次类推代码实现Class Solution{ //heapify过程 void heapify(vector<int> &tree,int

2021-04-10 12:04:08 68

空空如也

空空如也

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

TA关注的人

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