自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 内联函数

一、函数调用:函数调用的过程是:参数传递—>执行函数体—>返回,函数参数传递的过程实质是将实参值通过栈空间一个一个传递给形参的过程,也就是值传递。(实参和形参的传递方式:值传递、地址传递、引用传递)函数调用的过程,1程序从main函数开始执行函数调用前的语句;2程序的控制转移到被调用函数的入口处,同时进行参数传递;3执行被调用函数中函数体语句;4流程返回到调用函数的下一条指令处...

2018-08-06 16:32:29 292

原创 MySQL存储引擎

一、MySQL常用存储引擎:存储引擎:MySQL操作文件的子系统,是基于表的,不是基于数据库的。 MySQL:插件式存储引擎数据库二、分类:1、InnoDB存储引擎(1)InnoDB存储引擎是windows默认的,提供具有提交、回滚和崩溃回复能力的事务安全。支持事务、DLTP:事务联机处理;不支持全文索引、支持行锁:通过索引查询时才支持行锁,非索引列查询时支持表锁(所以说支持行锁不...

2018-07-18 12:57:12 255

原创 高性能服务器编程——多进程编程

一、多进程编程1、多进程处理单机处理不能同时处理两个客户端,因为一旦一方执行起来,获取连接就会一直在while循环里面,而另一方获取不到连接,无法通讯,所以采用多进程处理。思路:父进程只负责获取连接,然后fork出子进程去和客户端通讯。注意:父子进程共享文件描述符,所以子进程在通讯时不必再创建文件描述符;    父进程创建出子进程后,关闭获取连接的文件描述符。利用父子进程编程:

2017-11-13 18:50:15 329

原创 IP协议

一、微机原理1、计算机组成:CPU、内存、I/O(输入输出设备)2、总线:(1)数据总线:链接cpu、I/O、内存的线来传送数据(2)地址总线:寻址 (3)控制总线:控制CPU、I/O、内存之间的方向 (I/O不可能到CPU)

2017-11-13 15:14:03 253

原创 网络编程(三) UDP报头及编程

一、UDP1、UDP 报头注意:         数据包长度包括首部在内的UDP报文长度。         校验值:头部和数据部分都校验。2、TCP和UDP比较(1)UDP控制信息很少,最多只有8个字节,而TCP最多有20个字节,所以UDP的传输速度较快。(2)UDP是无连接的:它在发送数据前不需要建立连接,数据发送完也不用断开连接。(3)UDP是不可靠

2017-11-12 21:14:51 616

原创 网络编程(二) TCP报头

一、TCP报头1、TCP头部信息出现在每个TCP报文段中,用于指定通信的源端端口、目的端端口、管理TCP连接等。TCP头部结构包括固定头部结构和头部选项。2、TCP固定头部结构如图所示:(1)16位源端口号/目的号:说明这个报文是来自哪里;要传给哪个上层协议。进行TCP通信时,客户端一般使用系统自动选择的临时端口号,服务器则会有指定的端口号。(2)32位序号:序号:报头的编号;

2017-11-06 00:29:24 449

原创 网络编程(二)TCP面向连接服务 三次握手和四次挥手

一、TCP面向连接服务1、三次握手创建连接TCP连接建立过程:首先由客户端给服务器发送一个SYN连接请求;接着服务器会连同SYN这个请求和它的回馈标识ACK一起发送给客户端,SYN/ACK有两个意义:一是确认收到上一个报文、二是告诉客户端同意连接请求;然后客户端仔给服务器发送一个ACK回馈,表示它确认了服务器端同意的请求。2、SYN:连接请求

2017-11-04 21:09:44 441

原创 网络编程基础(一)

一、网络数据传递流程1、数据发送流程图2、下层为是上层的服务是有限制的,如果上层想获取更多的服务只能通过自己去获取,上层服务没有权限要求下层服务提供更多的服务。二、网络编程1、在网络编程上有两个角色:服务器 、  客户端。服务器:作为一个中间桥梁去完成两个客户端的通信。客户端:作为普通用户使用的应用程序(QQ、游戏、浏览器...)服务器也不绝对就只是服务器,比如QQ

2017-11-03 16:43:49 309

原创 网络基础

一、网络基础1、网络就是将计算机主机连接起来,将网络连接起来就是互联网,inter网是最大的互联网;2、网络设备有路由器和交换机;路由器是osi协议模型网络层中的分组交换设备。它的基本功能就是通过登录、存储、转发等过程把数据传送到正确的网络;路由器比交换机多一个虚拟拨号功能,但是如果同时使用一个路由器网速之间会互相影响;路由器可以到网络层,能对IP报文进行分析,它有路由表去记录对应的I

2017-11-02 22:03:16 176

原创 线程控制(一)线程基础

一、线程管理1、线程的概念:线程是进程内部的一条执行序列或者说是执行流(简单说就是执行路线)。因为每个进程都是独立的,所以每个进程至少有一个线程,就是main的执行体,叫做主线程。进程可以通过线程库创建n条线程,新创建的线程叫做函数线程,函数线程和主线程不一样。2、所有的语言在main函数结束时程序退出,所以main函数从程序开始到结束是一条执行序列(执行流)。在main函数中可以调用库函

2017-10-27 18:52:30 265

原创 进程间通讯(四) 共享内存

一、共享内存1、所谓共享内存就是在物理内存创建一块区域,让进程A、B同时共享这块区域,这个和管道很像,但区别是这块区域不是一块单独的区域,而是既可以把它看为进程A的一部分,又可以把它看为是进程B的一部分。如图所示:2、共享内存也有内核对象来管理共享的内存区域。3、特点:共享内存是最快的一种IPC机制,在各个进程都有指针直接指向开辟内存区域访问时当作本进程中的一个内存控制直接操作

2017-10-26 16:26:58 268

原创 进程间通讯(三)消息队列

一、消息队列1、定义:消息:是一种数据(不仅仅是数据消息,它包括数据和类型);队列:它的数据结构是“先进先出”。消息队列:是一种临时存储消息的队列,完成进程之间的数据传递。它的特点是:不是完全的先进先出,相当于是有优先级的队列。2、特点:与管道相比:它也提供了一种在两个不相关的进程之间传递数据的方法,但消息队列的优点在于它独立于发送和进程而存在。不同的是管道发送的数据没有类型,

2017-10-25 08:19:35 356

原创 c++编译链接运行(一)

1、C和C++写代码必须通过编译、链接,才能得到可执行程序,可执行文件本身在磁盘存着,若要运行它,必须把它加载到内存。因为cpu从内存访问数据的效率远远大于从磁盘访问数据的效率。2、那么要加载到内存,都要加载哪些东西呢?      无论那种语言写代码都只产生指令和数据。3、把数据和指令加载到内存后如何区分二者呢?     一个计算机系统有CPU、内存、I/O,操作系统为了屏蔽底层硬

2017-10-21 22:27:43 525

原创 进程间通讯(二) 无名管道 & 信号量

一、无名管道1、无名管道是由系统控制,相对于有名管道而言的。无名管道在使用时产生,不使用时释放,并不会在系统上留下任何痕迹,所以在释放之后你并不知道哪一块被用过。2、使用限制:和有名管道相比,有名管道可以用于任意两个进程(包括父子进程),而无名管道因为使用前没有任何标识,所以只能用于父子进程之间,没有关系的两个进程不能打开无名管道。父子进程之间的有关系是因为子进程会拷贝父进程的文件表数

2017-10-19 22:56:22 355

原创 进程间通讯(一) 有名管道

一、管道文件1、A进程---->B进程   A进程的数据流通过通道向B进程2、半双工通讯:数据流向单向传输 (同一时间)   全双工通讯:数据流向双向传输 (同一时间)

2017-10-18 13:48:07 663

原创 Strncmp函数

一、Strncmp函数1、参数:str1、str2为需要比较的两个字符串,n为要比较的字符的数目。字符串大小的比较是从ASCLL码表上的顺序来决定,此顺序为字符的值。                strncmp(  )首先将str1第一个字符值减去str2第一个字符值。若差值为0继续比较,直到字符结束标志'\0';若差值不为0,则将差值返回。                例如: Aa    b

2017-10-12 15:47:00 7964

原创 Linux简答知识点

1、简述静态链接库与共享库的区别。       静态库:链接过程使用静态库,链接时将静态库中的内容合成到可执行文件,运行时不在依赖文件。            .a(linux)   .lib(windows)       动态库/共享库:运行时加载动态库,运行时可执行文件依赖于动态库。动态库必须和可执行文件都提供给用户。           .so (linux) .dll(wi

2017-09-20 15:15:51 530

原创 Linux基本命令(一)

一、Linux基本命令1、ls:查看当前目录下的文件       ls -a:显示所有文件(以“.”开头的是隐藏文件)   ls -l:每列仅显示一个文件或目录名称,显示属性信息   ls -a -l:每列仅显示一个文件或目录名称,并显示所有文件   ls -i:列出文件inode结点2、cd:切换目录   cd /:切换根目录   cd ~:切换到当前用户的根目录

2017-09-14 23:08:29 167

原创 Linux下的系统编程和网络编程知识网络

一、Linux(red hat)基础Linux文件系统:Linux根目录下子目录含义、文件类型、EXT2系统、Linux文件层次结构Linux基本操作命令:  文件操作:touch、rm、cp、mv、less、more、head、cat、mkdir、vi/vim、tail                                    进程管理:ps、kill、pkill、job

2017-09-10 14:54:32 1095

原创 排序方法稳定性总结

一、关于常见排序算法稳定性的问题    排序算法的稳定性,简单地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果A1 = A2,序列中A1在A2位置前,排序后A1还是要在A2位置前,那么这个算法就算稳定。(1)冒泡排序冒泡排序就是把小的元素往前调或者把大的元素往后沉。比较是相邻的两个元素比较,交换也发生在这两

2017-08-31 00:00:08 575

原创 基数排序

一、基数排序1、基数排序又叫桶排序,借助多关键字排序的思想对单逻辑关键字进行排序。2、基本思想:  (1)用0~9作为下标分别记录的个位、十位、百位...0~9的数字,首先对应个位将数据入桶。  (2)保证先进先出将数据重新排列,然后相同的方法看十位数字将数据入桶。  (3)重新排列,依次比较。3、排列的趟数等于最大数的位数4、代码如下:#include#incl

2017-08-29 23:09:37 172

原创 归并排序

一、归并排序1、基本思想:(1)分:使用二分法将n个记录看成是n个有序的子序列,每个子序列的长度为1。                        (2)合:两两归并,直到得到一个长度为n的有序序列为止。2、核心操作:将一维数组中前后相邻的两个有序序列归并为一个有序序列。3、代码如下:#includevoid Merge(int arr[], int tmp[], int

2017-08-28 22:53:05 202

原创 冒泡排序法

一、冒泡法 1、基本思想:用关键字从剩余所有元素第一个开始依次进行比较,每一趟找出序列最大的元素沉在最后,重复操              作。若遇到逆序进行位置交换,接着用较大值进行后面的比较过程。 2、举例: 将arr[5]={5,2,9,6,4,1}用冒泡法进行排序   (1)第一趟:用arr[0]=5和其余元素依次进行比较。              5 > 2,二者位

2017-08-26 23:48:35 418 1

原创 选择排序之堆排序

一、选择排序 1、堆的定义:堆实际上是一棵完全二叉树,完全二叉树中所有非终端结点的值均不大于(或小于)其左、右子结点    的值。  只需要一个记录大小的辅助空间,每个待排序的记录仅占有一个存储空间。 2、大根堆:父结点的数据大于每一个子结点。 3、小根堆:每一个子结点的数据均大于父结点 4、父子结点转化:父结点: i   左右子树: j    父结点找子结点:——> 左子

2017-08-25 21:08:10 179

原创 选择排序之简单选择

一、选择排序 1、简单选择排序:一趟排序中找到最小的数,放在第一位;二趟排序中找到剩下数中最小的数,放在第二位...依次类推到第n-1位,                  第n个元素不用选择了,因为只有它一个数字了,那么它就是最大的元素了。 2、稳定性:不稳定 3、思想说明:例如:将1 5 6 3 2 利用简单选择法进行排序。  (1)第一趟:用1和其他元素依次进行比较,其他

2017-08-23 19:08:20 305

原创 前缀、中缀、后缀表达式

一、表达式转换 1、前缀表达式又称前缀记法或者波兰式,它的运算符位于操作数之前,便于机器查看。例如:+ 3 4 (3+4) 2、中缀表达式是最常用的一种表达式,它的运算符位于操作数中间,便于人为观察或操作。例如:3 + 4 (3+4) 3、后缀表达式又称逆波兰式,它的运算符位于操作数之后。例如:3 4 + (3+4) 4、中缀到后缀表达式的转换:   例如:X = A+ B * (

2017-08-22 21:47:21 670

原创 插入排序之希尔排序

一、希尔排序 1、希尔排序:又称“缩小增量排序”,时间复杂度和空间复杂度和增量有关。 2、基本思想:先将整个待排记录序列分割成若干子序列分别进行直接插入排序。待整个序列中的记录“基本有序”时,再对全体记录进行一次直接插入排序。 3、时间复杂度:O(n^2),但是,如果待排记录序列为正序时 ,时间复杂度为O(n)。 4、子序列:不是简单的“逐段分割”,而是将相隔某个“增量”的记录组成

2017-08-20 22:44:36 182

原创 内部排序思想、直接插入排序法

一、排序思想 1、排序:排列顺序,把一组数据元素的任意序列重新排列成一组按关键字排列的有序序列。 2、排序的分类:   (1)存储位置:内部排序 数据在内存中排序,数据量较小。                外部排序 部分排序,数据量太大。   (2)排序算法(逻辑): 插入排序、选择排序、交换排序、归并排序、计数排序。   (3)排序结果:升序、降序。 3、排序整体思

2017-08-20 21:16:52 261

空空如也

空空如也

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

TA关注的人

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