自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Chenxi13

韬光养晦,厚积薄发。

  • 博客(19)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 排序算法:堆排序

堆排序在数据结构之堆的基本操作这篇博客当中提到过一个堆排序。就是将一个堆的元素删除完毕过后,此时的数组内部就是一个有序的序列。堆与排序堆是一个完全二叉树,堆的任意一个节点都是以这个节点为根节点的树中的最值(最大或最小值)这样子的话,每一个堆的堆顶元素都是这个堆的最值。那么依次删除一个堆的堆顶,最后就能够得到一个有序的序列。而堆排序就是利用了堆的这个性质来进行排序的过程。思路...

2018-05-30 16:39:02 276

原创 排序算法:希尔排序

希尔排序 希尔排序(Shell’s Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因D.L.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1...

2018-05-30 16:16:05 333 1

原创 排序算法:冒泡排序、选择排序、插入排序

在生活中出出都有排序,而且排序算法也是常常能够在学习中遇到的。今天这里,对冒泡、选择、插入这几种常见的排序方式进行实现。 话不多说,进入正题!冒泡排序对于冒泡排序来说,这种算法应该是学习过程中见到的最多的了。冒泡排序简单的来说就是每次一排序过后,将区域内最大或者最小的值冒出,简称冒泡。相比对冒泡排序大家还是深有体会的,这里对冒泡排序不做过多的赘述,直接贴上代码!下面所有的排序算法...

2018-05-30 15:10:36 280

原创 网络基础:TCP协议-粘包问题

面向字节流 创建一个socket的,不仅仅只是申请一个文件描述符,并且还开辟一片发送缓冲区及接收缓冲区。在调用write进行写数据时,先写入发送缓冲区当中,如果数据较大,那么TCP进行分包发送。如果数据较小,那么就现在发送缓冲区内部等待,等到了合适的时候再发出。在接收数据时,首先从网卡驱动程序中将数据读至接收缓冲区,接着调用read进行读数据。由于TCP既有发送缓冲区又有接收缓冲区,所以w...

2018-05-24 15:44:21 433

原创 网络基础:TCP协议-如何保证传输的高性能

TCP高性能的保证TCP传输相比于UDP传输,其更具有可靠性,安全性。但是传输效率与速度都比UDP要稍逊一筹。不过TCP协议自身是保证其效率及性能的。TCP协议保证高性能的方式有:滑动窗口快速重传延迟应答捎带应答滑动窗口在保证TCP传输的可靠的性的时候,其中有一条就是确认应答。倘若是每发送一条数据,就等待一次ACK应答的话。大量的时间就会浪费在数据的往返上,这样性能会...

2018-05-24 14:43:29 2776

原创 网络基础:TCP协议-如何保证传输可靠性

TCP协议传输的特点主要就是面向字节流、传输可靠、面向连接。这篇博客,我们就重点讨论一下TCP协议如何确保传输的可靠性的。确保传输可靠性的方式TCP协议保证数据传输可靠性的方式主要有:校验和序列号确认应答超时重传连接管理流量控制拥塞控制校验和在数据传输的过程中,将每个发送的数据...

2018-05-24 13:04:51 80260 22

原创 数据结构之布隆过滤器的实现

布隆过滤器 布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。简单来说,布隆过滤器就是基于位图来实现的。确定某个元素是否出现在一个范围内。比如说一个字符串,无法用一个位来表示是否存在过。那...

2018-05-24 00:01:05 689

原创 数据结构之位图基本操作的实现

位图说到位图,我们应该都不陌生。在学习信号的时候我们知道,信号有递达表,阻塞表。而这些表都是基于位图实现的。所谓位图,就是将每个比特位都当做一种特殊的意义,其值0与1的变化代表不同的含义。使用位图最大的优点就是节省空间。位图的基本操作位图主要的基本操作:设置某一位有效(这里默认有效的含义就是对应比特位为1)设置某一位无效将位图全体置为0将位图全体置为1测试某一位是否被...

2018-05-23 23:48:46 325

原创 网络基础:TCP协议-握手与挥手

认识TCP协议TCP全称为“传输控制协议”,这是传输层的一个协议,对数据的传输进行一个详细的控制。 特点:面向字节流安全可靠有连接TCP协议段格式源端口号与目的端口号:这里与UDP的一样,每个数据都要知道从哪个进程来,要到哪个进程去。32位序号与32位确认序号:这里的序号与确认信号可以理解成两个通信进程在收发数据的时候互相答复的信息。比如说:A进程从序列号10...

2018-05-21 16:01:59 716

原创 数据结构之哈希搜索结构(二)

上篇博客我们以闭散列解决哈希冲突的方式实现了哈希搜索结构。闭散列在实际操作时需要考虑一个问题就是如果插入时发现超过了负载因子,那么这个时候就不能插入了,需要扩容。扩容时,则需要创建更大的空间,并且由于空间变大,导致的可放个数变多,进而导致哈希函数所计算出关键值与对应存储位置发生改变。所以在扩容后拷贝的时候更加的麻烦。开散列解决哈希冲突同样再提出开散列之前定义哈希函数,方便查看。...

2018-05-21 14:57:36 227

原创 数据结构之哈希搜索结构(一)

什么是哈希搜索结构 顺序搜索以及二叉搜索树中,元素存储位置和元素各关键码之间没有对应的关系,因此在查找一个元素的时候,必须要经过关键码的多次比较。所以这样的搜索效率取决于搜索过程中元素的比较次数。而我们理想的搜索方法就是不用经过任何比较,一次直接从表中得到要搜索的元素。如果能够构造一种结构,让所要查找的关键码与它的存储位置有一定的关系,那么可以根据这种关系找到其位置从而更快的找到关键...

2018-05-21 14:39:34 364

原创 Linux:netstat指令

netstatnetstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。选项-a或--all:显示所有连线中的Socket; -A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址; -c或--continuous:持续列出网络状态; -C或--cache:显示路由器配置...

2018-05-16 16:10:31 211

原创 基于TCP协议:实现简单的多线程多进程服务器

为什么要多线程多进程服务器?相比于UDP来说,由于UDP是不需要连接的,可直接通信。所以基于UDP协议的服务器,并不需要考虑到多客户端同时访问服务器时接受数据的问题。而TCP协议是需要连接的,在一个客户端连接上服务器后,这个时候服务器就开始于客户端进行消息的发送与接收。那么其它的客户端在这个时候是无法与服务器连接的。这个时候就需要考虑多线程或者多进程的服务器来应对这个问题了。基于TCP协议...

2018-05-16 15:41:24 495

原创 数据结构之二叉搜索树的基本操作

二叉搜索树 二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。以上摘录自百度百科,简单来说,二叉搜索树就是任意一棵树,右子树最大,接下来是根节点...

2018-05-16 14:54:53 297

原创 数据结构之堆的基本操作

在实现堆的操作之前,先来明白什么是堆?堆中某个节点的值总是不大于或不小于其父节点的值堆总是一棵完全二叉树。要说到完全二叉树,直观的判断就是,层序遍历一棵树,如果树的某个节点没有右子树或者是没有子树,那么从这个节点后面的所有节点都不能够有任何子树。 接下来我们说说堆。堆分为大堆跟小堆。大堆的意思就是每一个节点都是它这个节点树的最大值。小堆同理是最小值。基本操作与实现...

2018-05-12 12:33:26 975

原创 基于TCP实现网络版三子棋小游戏

学习了UDP与TCP协议后,利用这个我们可以简单的实现一些网络小游戏。比如说三子棋。这里不对其做过多的赘述,直接贴上源码。如果有错误,请及时指出。感谢各位老铁!#pragma once#include <stdio.h>#include <stdlib.h>#include <stddef.h&a

2018-05-12 01:47:06 1392

原创 网络基础:浅析UDP协议

UDP协议端格式 其中16为UDP长度表示为整个数据报(UDP报头信息+UDP数据)的最大长度,那么也就是说UDP发送的数据最大不能超过64K(包括UDP报头信息)由于64K在当今的互联网下是非常非常小的数字,所以当我们要传输的数据超过64K时,就需要在应用层手动的分包,多次发送,并且在接收端手动的拼装。其中UDP检验和是为了校验数据的对错的,如果错误,直接丢弃,并不会重传。UDP特点...

2018-05-11 15:51:14 389

原创 网络基础:网络编程套接字

IP地址我们再用Xshell的时候,在虚拟机终端下,输入ifconfig可以查看虚拟机IP地址。IP地址究竟是什么? IP协议有两个版本,IPv与IPv6,在一般情况下默认的都是IPv4。IP地址是在IP协议中,用来标识网络中不同主机的地址。对于IPv4来说,IP地址是一个四字节32位的整数。我平常看的IP地址都是用点分十进制的字符串表示的。而用点分割的每一段数字表示的范围在0~2...

2018-05-10 16:29:31 257

原创 网络基础:初识网络

2018-05-08 19:56:42 397

es xpack 配置详情

es xpack 配置详情 7.10.1,通过安装 es kibana,使用自带的 x pack 插件来完成权限控制,网上很多都不全,本文非常详细。es kibana 版本号为 7.10.1 与 7.10.0,并且附带相关的步骤,以及方案。

2020-12-15

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

TA关注的人

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