<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[辛旭东小小工作室]]></title><description><![CDATA[UNIX, Linux, C|C++]]></description><link>https://blog.youkuaiyun.com/xinxudongstudy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xinxudongstudy]]></copyright><item><title><![CDATA[C++  单向链表  ——  初始化、插入、返回第一个节点、删除、查找、长度、打印、反转(逆序)]]></title><link>https://blog.youkuaiyun.com/xinxudongstudy/article/details/88564969</link><guid>https://blog.youkuaiyun.com/xinxudongstudy/article/details/88564969</guid><author>xinxudongstudy</author><pubDate>Fri, 15 Mar 2019 02:48:15 +0800</pubDate><description><![CDATA[单向链表的概念：

如果“一个节点”将指向“另一个节点的指针”作为数据成员，那么多个这样的节点可以连起来，只用一个变量就能够访问整个节点序列，我们称之为链表。如果序列中的节点只包含指向后继节点的链接，该链表就称之为单向链表。



01 声明：


#ifndef LINKLIST_H
#define LINKLIST_H
#include &lt;iostream&gt;
using name...]]></description><category></category></item><item><title><![CDATA[C++ 二叉查找树 —— 插入、遍历、查找、删除、销毁]]></title><link>https://blog.youkuaiyun.com/xinxudongstudy/article/details/88564909</link><guid>https://blog.youkuaiyun.com/xinxudongstudy/article/details/88564909</guid><author>xinxudongstudy</author><pubDate>Fri, 15 Mar 2019 02:30:11 +0800</pubDate><description><![CDATA[二叉查找树的特性：

二叉查找树（Binary Search Tree）（又：二叉搜索树，二叉排序树）

具有以下特性：

（1）若“左子树”不为空，则“左子树”上所有节点的值均小于“根节点”的值；

（2）若“右子树”不为空，则“右子树”上所有节点的值均大于“根节点”的值；

（3）左、右子树也分别为二叉排序树。



01 声明：


#include &amp;lt;iostream&amp;gt;
us...]]></description><category></category></item><item><title><![CDATA[C++  计数排序]]></title><link>https://blog.youkuaiyun.com/xinxudongstudy/article/details/88564832</link><guid>https://blog.youkuaiyun.com/xinxudongstudy/article/details/88564832</guid><author>xinxudongstudy</author><pubDate>Fri, 15 Mar 2019 01:13:06 +0800</pubDate><description><![CDATA[计数排序的原理：

（1）首先，找出最大的元素，给“count[ ]”申请“最大元素的下标+1”个单元(因为数组下标是从0开始的，所以要+1)；

（2）然后，统计每个元素出现的次数，把次数存到“count[ ]”里；

（3）最后，通过一个元素出现的次数-1，从而算出正确顺序的位置，再把元素放进去，就有顺序了。

 因为不知道范围的大小，所以需要申请内存，如果知道范围的大小，就可以直接声明。
...]]></description><category></category></item><item><title><![CDATA[C++  基数排序]]></title><link>https://blog.youkuaiyun.com/xinxudongstudy/article/details/88564386</link><guid>https://blog.youkuaiyun.com/xinxudongstudy/article/details/88564386</guid><author>xinxudongstudy</author><pubDate>Fri, 15 Mar 2019 00:13:16 +0800</pubDate><description><![CDATA[基数排序的原理：

（1）首先，把整数通过求余的方式拆分成“个位、十位、百位、… ”；

（2）然后，统计每个整数的“个位、十位、百位、… ”出现的次数，之后把次数存到以“余数”为编号的桶子里；

（3）最后，通过一个整数出现的次数-1，从而算出正确顺序的位置，再把整数放进去，就有顺序了。


#include &amp;lt;iostream&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;
...]]></description><category></category></item><item><title><![CDATA[C++  归并排序]]></title><link>https://blog.youkuaiyun.com/xinxudongstudy/article/details/88538653</link><guid>https://blog.youkuaiyun.com/xinxudongstudy/article/details/88538653</guid><author>xinxudongstudy</author><pubDate>Wed, 13 Mar 2019 18:34:18 +0800</pubDate><description><![CDATA[归并排序的原理：

（1）首先，把一个数组以中间元素为界限分成两组；

（2）然后“左边数组”和“右边数组”中的元素分别进行比较；

（3）最后合并两个已经排好顺序的数组，我们称之为归并排序。


#include &amp;lt;iostream&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;
using namespace std;

/**************************...]]></description><category></category></item><item><title><![CDATA[C++  堆排序]]></title><link>https://blog.youkuaiyun.com/xinxudongstudy/article/details/88537339</link><guid>https://blog.youkuaiyun.com/xinxudongstudy/article/details/88537339</guid><author>xinxudongstudy</author><pubDate>Wed, 13 Mar 2019 17:36:22 +0800</pubDate><description><![CDATA[堆排序的原理：

堆是一棵完全二叉树，堆满足两个属性：

（1）堆的每一个父节点的值都大于（或小于）其子节点；

（2）树是完全平衡的，最底层的叶节点都位于最左边的位置上。



大顶堆：

（1）首先，通过“左右节点”与“父节点”不断地进行比较，得出最大值作为根节点，这样就形成了一个大顶堆。

（2）然后把最大值拿出来，放到后面的位置，这样元素就减少一个，之后再去重新建堆。

（3）不断的重复...]]></description><category></category></item><item><title><![CDATA[C++  快速排序 —— 左右指针法]]></title><link>https://blog.youkuaiyun.com/xinxudongstudy/article/details/88411612</link><guid>https://blog.youkuaiyun.com/xinxudongstudy/article/details/88411612</guid><author>xinxudongstudy</author><pubDate>Mon, 11 Mar 2019 23:02:11 +0800</pubDate><description><![CDATA[快速排序 ——左右指针法的原理：

（1）设最右值为枢轴值

（2）从左往右扫描，发现大于枢轴值的就进行位置互换

（3）从右往左扫描，发现小于枢轴值的就进行位置互换


#include &amp;lt;iostream&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;
using namespace std;

/**************************************...]]></description><category></category></item><item><title><![CDATA[C++  希尔排序]]></title><link>https://blog.youkuaiyun.com/xinxudongstudy/article/details/88411244</link><guid>https://blog.youkuaiyun.com/xinxudongstudy/article/details/88411244</guid><author>xinxudongstudy</author><pubDate>Mon, 11 Mar 2019 22:23:35 +0800</pubDate><description><![CDATA[希尔排序的原理：

（1）首先，从数组的首元素开始每隔“步长(间隔)”个元素就挑选一个元素出来作为子数组元素。

（2）然后每个子数组各自进行比较，比较好后，每个子数组都有顺序，进入下一轮，步长(间隔)减少，

    再根据步长(间隔)分组进行比较。

（3）重复以上操作，最后就有顺序了。


#include &amp;lt;iostream&amp;gt;
#include &amp;lt;stdlib....]]></description><category></category></item><item><title><![CDATA[C++  冒泡排序]]></title><link>https://blog.youkuaiyun.com/xinxudongstudy/article/details/88397104</link><guid>https://blog.youkuaiyun.com/xinxudongstudy/article/details/88397104</guid><author>xinxudongstudy</author><pubDate>Mon, 11 Mar 2019 16:42:51 +0800</pubDate><description><![CDATA[冒泡排序的原理：

比较两个相邻的元素，将最大的元素交换至右端（升序），每一轮都重复以上操作，最后就有顺序了。


#include &amp;lt;iostream&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;
using namespace std;

/****************************************************************/
/...]]></description><category></category></item><item><title><![CDATA[C++  二分(折半)查找]]></title><link>https://blog.youkuaiyun.com/xinxudongstudy/article/details/88390271</link><guid>https://blog.youkuaiyun.com/xinxudongstudy/article/details/88390271</guid><author>xinxudongstudy</author><pubDate>Mon, 11 Mar 2019 11:14:26 +0800</pubDate><description><![CDATA[二分查找的原理：

首先，假设表中元素是按升序排列，将表“中间位置记录的关键字”与“查找关键字”进行比较，如果两者相等，则查找成功。

否则，利用“中间位置的记录”将表分成“前后”两个子表：

（1）如果“查找关键字”&amp;lt;“中间关键字”，前子表查找。
（2）如果“查找关键字”&amp;gt;“中间关键字”，后子表查找。

 重复以上过程，直到查找成功。


#include &amp;lt;iostrea...]]></description><category></category></item><item><title><![CDATA[C++  梳排序]]></title><link>https://blog.youkuaiyun.com/xinxudongstudy/article/details/82692958</link><guid>https://blog.youkuaiyun.com/xinxudongstudy/article/details/82692958</guid><author>xinxudongstudy</author><pubDate>Thu, 13 Sep 2018 18:51:43 +0800</pubDate><description><![CDATA[梳排序的原理：

通过比较元素彼此之间的步长位置这种方式对数据进行预处理。在每次移动中，步长会越来越小，直至它等于1。


#include &amp;lt;iostream&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;
using namespace std;

/*******************************************/
/*  梳排序
/*********...]]></description><category></category></item><item><title><![CDATA[C ++  选择排序]]></title><link>https://blog.youkuaiyun.com/xinxudongstudy/article/details/82663843</link><guid>https://blog.youkuaiyun.com/xinxudongstudy/article/details/82663843</guid><author>xinxudongstudy</author><pubDate>Wed, 12 Sep 2018 16:38:26 +0800</pubDate><description><![CDATA[选择排序的原理：

首先，假设array[0]为第一个最小的元素，然后与待排序的元素进行比较，得出最小元素之后，通过交换，把最小元素放到待排序列的前面，每一轮都重复以上操作，最后就有顺序了。


#include &amp;lt;iostream&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;
using namespace std;

/***************************...]]></description><category></category></item><item><title><![CDATA[C ++  直接插入排序]]></title><link>https://blog.youkuaiyun.com/xinxudongstudy/article/details/82626241</link><guid>https://blog.youkuaiyun.com/xinxudongstudy/article/details/82626241</guid><author>xinxudongstudy</author><pubDate>Tue, 11 Sep 2018 15:19:03 +0800</pubDate><description><![CDATA[直接插入排序的原理：

将一个待排序的元素，通过与有序序列的所有元素进行比较后，再插入到有序的序列中。


#include &amp;lt;iostream&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;
using namespace std;

/*****************************************************************/
/*  ...]]></description><category></category></item></channel></rss>