<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[avv72052的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/avv72052</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; avv72052]]></copyright><item><title><![CDATA[<排序算法> 希尔排序ShellSort]]></title><link>https://blog.youkuaiyun.com/avv72052/article/details/102161904</link><guid>https://blog.youkuaiyun.com/avv72052/article/details/102161904</guid><author>avv72052</author><pubDate>Tue, 06 Aug 2019 13:17:00 +0800</pubDate><description><![CDATA[1.核心思想：希尔排序是插入排序的一种，是直接插入排序的一种改进版本，他们同属于插入排序类。这是一个不稳定的排序算法。采取跳跃分割的策略：将相距某个“增量”的记录组成一个子序列，这样才能保证在子序列内分别进行直接插入排序后得到的结果是基本有序而不是局部有序。2.代码实现：

 1 #include&lt;iostream&gt;
 2 using namespace std;
 ...]]></description><category></category></item><item><title><![CDATA[<查找算法> 二分查找BinarySearch]]></title><link>https://blog.youkuaiyun.com/avv72052/article/details/102161903</link><guid>https://blog.youkuaiyun.com/avv72052/article/details/102161903</guid><author>avv72052</author><pubDate>Sun, 21 Jul 2019 13:37:00 +0800</pubDate><description><![CDATA[1 #include&lt;iostream&gt;
 2 using namespace std;
 3 
 4 int BinarySearch(int arr[],int begin,int end,int num)
 5 {
 6     if(arr == NULL || begin &lt; 0 || end &lt; 0 || begin &gt;= end...]]></description><category></category></item><item><title><![CDATA[<算法编程> 两个栈实现一个队列]]></title><link>https://blog.youkuaiyun.com/avv72052/article/details/102161901</link><guid>https://blog.youkuaiyun.com/avv72052/article/details/102161901</guid><author>avv72052</author><pubDate>Sun, 21 Jul 2019 13:33:00 +0800</pubDate><description><![CDATA[1 #include&lt;iostream&gt;
 2 using namespace std;
 3 
 4 typedef struct Node
 5 {
 6     int num;
 7     Node* pNext;
 8 }Stack,Queue;
 9 
10 //栈的入栈相当于 链表的头插
11 Stack* stack_push(St...]]></description><category></category></item><item><title><![CDATA[<算法编程> 把字符串中的空格替换成%20]]></title><link>https://blog.youkuaiyun.com/avv72052/article/details/102161900</link><guid>https://blog.youkuaiyun.com/avv72052/article/details/102161900</guid><author>avv72052</author><pubDate>Sat, 20 Jul 2019 18:58:00 +0800</pubDate><description><![CDATA[1 #include&lt;iostream&gt;
 2 using namespace std;
 3 
 4 void ChangeSpace(char* buf,int len)
 5 {
 6     if(buf == NULL || len &lt;= 0) return ;
 7     
 8     int count = 0;
 9     f...]]></description><category></category></item><item><title><![CDATA[<算法编程> 奇偶链表相连]]></title><link>https://blog.youkuaiyun.com/avv72052/article/details/102161899</link><guid>https://blog.youkuaiyun.com/avv72052/article/details/102161899</guid><author>avv72052</author><pubDate>Sat, 20 Jul 2019 18:56:00 +0800</pubDate><description><![CDATA[1 #include&lt;iostream&gt;
  2 using namespace std;
  3 
  4 struct Node
  5 {
  6     int n;
  7     Node* pNext;
  8 };
  9 
 10 Node* AddNode(Node** pHead,Node* pNode)
 11 {
 ...]]></description><category></category></item><item><title><![CDATA[<算法编程> 给定二维数组查找一个数是否存在在这个数组中]]></title><link>https://blog.youkuaiyun.com/avv72052/article/details/102161895</link><guid>https://blog.youkuaiyun.com/avv72052/article/details/102161895</guid><author>avv72052</author><pubDate>Sat, 20 Jul 2019 18:53:00 +0800</pubDate><description><![CDATA[1 #include&lt;iostream&gt;
 2 using namespace std;
 3 
 4 bool FindNum(int arr[][5],int rows,int cols,int num)
 5 {
 6     if(arr == NULL || rows &lt;= 0 || cols &lt;= 0) return false;
 ...]]></description><category></category></item><item><title><![CDATA[<算法编程> 从尾到头打印链表]]></title><link>https://blog.youkuaiyun.com/avv72052/article/details/102161894</link><guid>https://blog.youkuaiyun.com/avv72052/article/details/102161894</guid><author>avv72052</author><pubDate>Sat, 20 Jul 2019 18:53:00 +0800</pubDate><description><![CDATA[1 #include&lt;iostream&gt;
  2 using namespace std;
  3 
  4 struct Node
  5 {
  6     int n;
  7     Node* pNext;
  8 };
  9 
 10 Node* AddNode(Node** pHead,Node* pNode)
 11 {
 12...]]></description><category></category></item><item><title><![CDATA[<排序算法> 计数排序CountSort]]></title><link>https://blog.youkuaiyun.com/avv72052/article/details/102161891</link><guid>https://blog.youkuaiyun.com/avv72052/article/details/102161891</guid><author>avv72052</author><pubDate>Sat, 20 Jul 2019 18:51:00 +0800</pubDate><description><![CDATA[代码实现：

 1 #include&lt;iostream&gt;
 2 using namespace std;
 3 
 4 void PrintArr(int arr[],int len);
 5 void CountSort(int arr[],int len)
 6 {
 7     if(arr == NULL || len &lt;= 0)    retu...]]></description><category></category></item><item><title><![CDATA[<排序算法> 直接插入排序InsertSort]]></title><link>https://blog.youkuaiyun.com/avv72052/article/details/102161892</link><guid>https://blog.youkuaiyun.com/avv72052/article/details/102161892</guid><author>avv72052</author><pubDate>Sat, 20 Jul 2019 18:49:00 +0800</pubDate><description><![CDATA[1.核心思想：将一个记录插入到已经排好序的有序表中，从而得到一个新的、记录数+1的有序表。2.代码实现：

 1 #include&lt;iostream&gt;
 2 using namespace std;
 3 
 4 void PrintArr(int arr[],int len);
 5 void InsertSort(int arr[],int len)
 6 ...]]></description><category></category></item><item><title><![CDATA[<排序算法> 快速排序QuickSort]]></title><link>https://blog.youkuaiyun.com/avv72052/article/details/102161889</link><guid>https://blog.youkuaiyun.com/avv72052/article/details/102161889</guid><author>avv72052</author><pubDate>Sat, 20 Jul 2019 18:48:00 +0800</pubDate><description><![CDATA[1.基本思想：通过一趟排序将要排序的数据分割成独立的两部分，其中一部分的所有数据都比另外一部分的所有数据都要小，然后再按此方法对这两部分数据分别进行快速排序，整个排序过程可以递归进行，以此达到整个数据变成有序序列。2.代码实现：

 1 #include&lt;iostream&gt;
 2 using namespace std;
 3 
 4 void PrintArr(i...]]></description><category></category></item><item><title><![CDATA[<排序算法> 简单选择排序SelectSort]]></title><link>https://blog.youkuaiyun.com/avv72052/article/details/102161890</link><guid>https://blog.youkuaiyun.com/avv72052/article/details/102161890</guid><author>avv72052</author><pubDate>Sat, 20 Jul 2019 18:47:00 +0800</pubDate><description><![CDATA[1.核心思想：每一趟在n-i+1中选取关键字最小的记录作为有序序列的第i个记录。简单排序最大的特点就是交换移动次数相当少，这样就节约了时间。通过分析时间复杂度也就是说如果从小到大进行排序，找最大的往后放或者找最小的往前放。简单选择排序没有优化，对数组没有要求。有序或者无序都没有差别。2.代码实现：

 1 #include&lt;iostream&gt;
 2 using name...]]></description><category></category></item><item><title><![CDATA[<排序算法> 冒泡排序BubbleSort]]></title><link>https://blog.youkuaiyun.com/avv72052/article/details/102161887</link><guid>https://blog.youkuaiyun.com/avv72052/article/details/102161887</guid><author>avv72052</author><pubDate>Sat, 20 Jul 2019 18:45:00 +0800</pubDate><description><![CDATA[1.核心思想：根据要求，对数组进行相邻的两两元素之间的比较，如果反序就进行交换，直到数组没有反序的相邻的元素为止。2.实现：①非标准冒泡排序：让每一个关键字arr[i]，都和它后面的每一个关键字做比较（即从arr[i+1]开始比较，依次向后），如果大则交换，这样第一位置的关键字在一次循环之后一定会变成这个数组中的最小值。但是，这种排序方法不算是标准的冒泡排序，因为它不符合两两比较相邻记录...]]></description><category></category></item><item><title><![CDATA[<数据结构> 树Tree（简单理论）]]></title><link>https://blog.youkuaiyun.com/avv72052/article/details/102161888</link><guid>https://blog.youkuaiyun.com/avv72052/article/details/102161888</guid><author>avv72052</author><pubDate>Sun, 21 Oct 2018 13:49:00 +0800</pubDate><description><![CDATA[一.与树相关的基本概念
1.树是可以为空树的 即根为空
2.树的层数 即为当前树的高度
3.结点的高度 从下往上看 看它下面有几个人
结点的深度 从上往下看 看它上面有几个人
4.度 即当前结点有几个孩子 整棵树的度就是最大的某一结点的度
5.中间结点 即为有孩子的结点
叶子结点 即为没有孩子的结点
（一直纠结在一个点上 到底是节点 还是结点 查了一下 对于完全二叉树来说...]]></description><category></category></item><item><title><![CDATA[<数据结构> 队列Queue]]></title><link>https://blog.youkuaiyun.com/avv72052/article/details/102161898</link><guid>https://blog.youkuaiyun.com/avv72052/article/details/102161898</guid><author>avv72052</author><pubDate>Wed, 17 Oct 2018 15:07:00 +0800</pubDate><description><![CDATA[一.队列Queue：先进先出 FIFO
1.队列有两个指针 一个是队首 一个是队尾 可以理解成链表的头删除和尾添加
2.存储方式：
①顺序存储②链式存储
3.顺序存储的应用：循环队列
（以下来自本人看过百度文库后的个人理解）
循环队列：开辟一个数组空间 把这个数组空间想象成一个首尾相连的圆环空间 存储在这个循环空间的队列就称为循环队列
循环队列存在一个问题就是假溢出 什么...]]></description><category></category></item><item><title><![CDATA[<数据结构> 栈Stack]]></title><link>https://blog.youkuaiyun.com/avv72052/article/details/102161886</link><guid>https://blog.youkuaiyun.com/avv72052/article/details/102161886</guid><author>avv72052</author><pubDate>Thu, 20 Sep 2018 17:30:00 +0800</pubDate><description><![CDATA[一.栈stack：先进后出 FILO
1.栈的主要功能是进行数据的存储和计算 栈是一种容器 是具有特殊限制的链表或数组
2.栈的存储方式：
①顺序存储：数组
空间固定 所以需要预先知道所需要开辟的空间有多大 数组难以进行扩容 所以导致可用空间是有限的
②链式存储：链表
栈可以理解为链表的头插头删 这种存储方式便于查找 又快又方便
3.栈的操作端为栈顶pTop 栈是没有栈底的...]]></description><category></category></item><item><title><![CDATA[<网络> TCP：C/S模式设计 以及相关知识]]></title><link>https://blog.youkuaiyun.com/avv72052/article/details/102161893</link><guid>https://blog.youkuaiyun.com/avv72052/article/details/102161893</guid><author>avv72052</author><pubDate>Thu, 09 Aug 2018 14:41:00 +0800</pubDate><description><![CDATA[一.服务器端Server
1.基本思路：
①加载库：WSAStartup();
②创建套接字：socket();
③选址绑定：bind():
④监听：listen();
⑤接受客户端连接：accept();
⑥收发数据：recv - send
⑦关闭套接字：closesocket();（两个）
⑧卸载库：WSACleanup();
2.代码实现：

 1 #inc...]]></description><category></category></item><item><title><![CDATA[<网络> TCP/IP协议栈 以及IP的相关知识点]]></title><link>https://blog.youkuaiyun.com/avv72052/article/details/102161885</link><guid>https://blog.youkuaiyun.com/avv72052/article/details/102161885</guid><author>avv72052</author><pubDate>Thu, 09 Aug 2018 13:27:00 +0800</pubDate><description><![CDATA[一.TCP/IP协议栈：符合先进后出
1.图解：

2.注意：
①帧头长度14 帧尾长度4
②以太网数据报范围：46~1500（小于46的时候会自动填充）
帧长度：64~1548
③将网卡设置为“混杂模式”的时候 可以收到经过这个网卡的任意数据包
二.IP
1.分类：
①公有IP②私有IP
2.私有IP分类：
①A类：“0”IP范围：1.0.0.0~127.2...]]></description><category></category></item><item><title><![CDATA[<网络> UDP：C/S模式设计 及UDP特点]]></title><link>https://blog.youkuaiyun.com/avv72052/article/details/102161883</link><guid>https://blog.youkuaiyun.com/avv72052/article/details/102161883</guid><author>avv72052</author><pubDate>Mon, 06 Aug 2018 13:41:00 +0800</pubDate><description><![CDATA[一.服务器端Server
1.基本思路：
①加载库：选择一个种类 WSAStartup();
②创建套接字：与外界通信的接口 socket();
③绑定：自己的地址信息 bind();
④收发数据
⑤关闭套接字：closesocket();
⑥卸载库：WSACleanup();
2.代码实现：

 1 #include&lt;iostream&gt;
 2 #inc...]]></description><category></category></item><item><title><![CDATA[<网络> 基础（库 网络分层模型）]]></title><link>https://blog.youkuaiyun.com/avv72052/article/details/102161862</link><guid>https://blog.youkuaiyun.com/avv72052/article/details/102161862</guid><author>avv72052</author><pubDate>Sun, 05 Aug 2018 15:37:00 +0800</pubDate><description><![CDATA[一.库：分为静态库和动态库
1.静态库：在链接阶段 将代码完整拷贝到exe中
①使用方法：#pragma comment(lib,"xx.lib")
②注意：pragma在预处理时保留 链接阶段生成静态库只需导.h和.lib
2.动态库：在链接阶段 将引入库拷贝到exe中
②使用方法同静态库 但这里的lib叫做引入库 而不是静态库
②加载方式分为两类：隐式加载和动态加载
...]]></description><category></category></item><item><title><![CDATA[<C++> 类（4）：静态成员变量和函数 浅拷贝和深拷贝（拷贝构造 operator=）]]></title><link>https://blog.youkuaiyun.com/avv72052/article/details/102161858</link><guid>https://blog.youkuaiyun.com/avv72052/article/details/102161858</guid><author>avv72052</author><pubDate>Mon, 25 Jun 2018 17:12:00 +0800</pubDate><description><![CDATA[一.静态成员变量和函数
1.静态成员变量：
①如果在类中放了静态static成员变量 一定要在源文件即.cpp中 类外 给这个变量进行初始化
初始化时要有：类型 类名 作用域

1 int CPerson::a = 100;

注意：一定要在定义CPerson类的后面初始化 不然会说不认识CPerson
②static变量在编译期的时候就存在了
不用定义对象调用 通过类...]]></description><category></category></item></channel></rss>