<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[hello__的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/zztingfeng</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zztingfeng]]></copyright><item><title><![CDATA[【数据结构】：快速排序（c++实现）]]></title><link>https://blog.youkuaiyun.com/zztingfeng/article/details/98473551</link><guid>https://blog.youkuaiyun.com/zztingfeng/article/details/98473551</guid><author>zztingfeng</author><pubDate>Sun, 04 Aug 2019 20:09:54 +0800</pubDate><description><![CDATA[一、快速排序的定义

快速排序（Quicksort）是对冒泡排序的一种改进。
快速排序由C. A. R. Hoare在1960年提出。它的基本思想是：通过一趟排序将要排序的数据分割成独立的两部分，其中一部分的所有数据都比另外一部分的所有数据都要小，然后再按此方法对这两部分数据分别进行快速排序，整个排序过程可以递归进行，以此达到整个数据变成有序序列。

二、排序算法原理

设要排序的数组是A[0]…...]]></description><category></category></item><item><title><![CDATA[【数据结构】：归并排序（c++实现）]]></title><link>https://blog.youkuaiyun.com/zztingfeng/article/details/98472854</link><guid>https://blog.youkuaiyun.com/zztingfeng/article/details/98472854</guid><author>zztingfeng</author><pubDate>Sun, 04 Aug 2019 19:12:30 +0800</pubDate><description><![CDATA[一、归并排序的定义

归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并，得到完全有序的序列；即先使每个子序列有序，再使子序列段间有序。若将两个有序表合并成一个有序表，称为二路归并。

二、归并排序的原理
第一步：申请空间，使其大小为两个已经排序序列之和，该空间用来存放合并后的序列；
第二步：设定两个指针，最初位置分别为两个已经排序序列的起...]]></description><category></category></item><item><title><![CDATA[【数据结构】：堆排序（c++实现）]]></title><link>https://blog.youkuaiyun.com/zztingfeng/article/details/98472735</link><guid>https://blog.youkuaiyun.com/zztingfeng/article/details/98472735</guid><author>zztingfeng</author><pubDate>Sun, 04 Aug 2019 18:53:17 +0800</pubDate><description><![CDATA[一、堆排序的定义
堆排序是一种树形选择排序，在排序过程中可以把元素看成是一颗完全二叉树，每个节点都大（小）于它的两个子节点，当每个节点都大于等于它的两个子节点时，就称为大顶堆，也叫堆有序； 当每个节点都小于等于它的两个子节点时，就称为小顶堆。

二、堆排序算法
1.将长度为n的待排序的数组进行堆有序化构造成一个大顶堆
2.将根节点与尾节点交换并输出此时的尾节点
3.将剩余的n -1个节点重新进行堆...]]></description><category></category></item><item><title><![CDATA[【数据结构】：希尔排序（c++实现）]]></title><link>https://blog.youkuaiyun.com/zztingfeng/article/details/98470164</link><guid>https://blog.youkuaiyun.com/zztingfeng/article/details/98470164</guid><author>zztingfeng</author><pubDate>Sun, 04 Aug 2019 16:30:12 +0800</pubDate><description><![CDATA[一、希尔排序的定义  希尔排序是直接插入排序的一种又称“缩小增量排序”（Diminishing Increment Sort），是直接插入排序算法的一种更高效的改进版本。希尔排序是把记录按下标的一定增量分组，对每组使用直接插入排序算法排序；随着增量逐渐减少，每组包含的关键词越来越多，当增量减至1时，整个文件恰被分成一组，算法便终止。

二、希尔排序的基本思想

  先取一个小于n的整数...]]></description><category></category></item><item><title><![CDATA[【数据结构】：排序算法总结]]></title><link>https://blog.youkuaiyun.com/zztingfeng/article/details/98376235</link><guid>https://blog.youkuaiyun.com/zztingfeng/article/details/98376235</guid><author>zztingfeng</author><pubDate>Sat, 03 Aug 2019 20:53:00 +0800</pubDate><description><![CDATA[参考：《大话数据结构》

一、排序算法分类

1、插入排序类： 直接插入排序，希尔排序；

2、选择排序类：简单选择排序，堆排序；

3、交换排序类：冒泡排序，快速排序；

4、归并排序

二、排序算法的指标








...]]></description><category></category></item><item><title><![CDATA[【数据结构】：直接插入排序（c++实现）]]></title><link>https://blog.youkuaiyun.com/zztingfeng/article/details/98374323</link><guid>https://blog.youkuaiyun.com/zztingfeng/article/details/98374323</guid><author>zztingfeng</author><pubDate>Sat, 03 Aug 2019 20:40:59 +0800</pubDate><description><![CDATA[一、直接插入排序的定义

直接插入排序是一种最简单的排序方法，其基本操作是将一条记录插入到已排好的有序表中，从而得到一个新的、记录数量增1的有序表。

二、排序思想

直接插入排序的基本思想是：把n个待排序的元素看成为一个有序表和一个无序表。开始时有序表中只包含1个元素，无序表中包含有n-1个元素，排序过程中每次从无序表中取出第一个元素，将它插入到有序表中的适当位置，使之成为新的有序表，重复n-1...]]></description><category></category></item><item><title><![CDATA[【数据结构】：简单选择排序（c++实现）]]></title><link>https://blog.youkuaiyun.com/zztingfeng/article/details/98371696</link><guid>https://blog.youkuaiyun.com/zztingfeng/article/details/98371696</guid><author>zztingfeng</author><pubDate>Sat, 03 Aug 2019 20:17:14 +0800</pubDate><description><![CDATA[一、简单选择排序的定义

   设所排序序列的记录个数为n。i取1,2,…,n-1,从所有n-i+1个记录（Ri,Ri+1,…,Rn）中找出排序码最小的记录，与第i个记录交换。执行n-1趟 后就完成了记录序列的排序。

二、排序思想

   在要排序的一组数中，选出最小（或者最大）的一个数与第1个位置的数交换；然后在剩下的数中再找最小（或者最大）的与第2个位置的数交换，以此类推，知道...]]></description><category></category></item><item><title><![CDATA[【数据结构】：冒泡排序（c++实现）]]></title><link>https://blog.youkuaiyun.com/zztingfeng/article/details/98100969</link><guid>https://blog.youkuaiyun.com/zztingfeng/article/details/98100969</guid><author>zztingfeng</author><pubDate>Thu, 01 Aug 2019 20:29:02 +0800</pubDate><description><![CDATA[一、冒泡排序定义：

   两两比较相邻记录的关键字，如果反序则交换，直到没有反序的纪录为止。

二、冒泡排序原理

比较相邻的元素。如果第一个比第二个大，就交换他们两个。
	对每一对相邻元素做同样的工作，从开始第一对到结尾的最后一对。
	针对所有的元素重复以上的步骤，除了最后一个。
	持续每次对越来越少的元素重复上面的步骤，直到没有任何一对数字需要比较。
三、排序过程

如需要排序的元素...]]></description><category></category></item><item><title><![CDATA[【数据结构】：七种排序算法]]></title><link>https://blog.youkuaiyun.com/zztingfeng/article/details/98095002</link><guid>https://blog.youkuaiyun.com/zztingfeng/article/details/98095002</guid><author>zztingfeng</author><pubDate>Thu, 01 Aug 2019 20:00:40 +0800</pubDate><description><![CDATA[目录：1、冒泡排序2、简单选择排序3、直接插入排序4、希尔排序5、堆排序6、归并排序7、快速排序8、排序算法总结

补充：

排序的定义



排序的稳定性





内部排序与外部排序




排序算法的性能从时间、空间、复杂度三个方面来衡量。
时间性能：高效率的排序算法需要尽可能少的关键字比较次数和尽可能少的的记录移动次数；
辅助空间：算法执行时所需要的辅助空间；
复杂度：算法本身的复杂度。
...]]></description><category></category></item><item><title><![CDATA[【leetcode】56 Merge Intervals 合并区间]]></title><link>https://blog.youkuaiyun.com/zztingfeng/article/details/97969678</link><guid>https://blog.youkuaiyun.com/zztingfeng/article/details/97969678</guid><author>zztingfeng</author><pubDate>Wed, 31 Jul 2019 23:10:26 +0800</pubDate><description><![CDATA[题目：

Given a collection of intervals, merge all overlapping intervals.
Example 1:
Input: [[1,3],[2,6],[8,10],[15,18]]
Output: [[1,6],[8,10],[15,18]]
Explanation: Since intervals [1,3] and [2,6] overla...]]></description><category></category></item><item><title><![CDATA[【c/c++】修改字符串的首元素为'/0']]></title><link>https://blog.youkuaiyun.com/zztingfeng/article/details/97300166</link><guid>https://blog.youkuaiyun.com/zztingfeng/article/details/97300166</guid><author>zztingfeng</author><pubDate>Thu, 25 Jul 2019 21:14:11 +0800</pubDate><description><![CDATA[题目来源：https://www.nowcoder.com/questionTerminal/6ba5e61f344a413ea37a429f3c065efb

下列程序的输出？


#include&lt;stdio.h&gt;
#include&lt;string.h&gt;

int main(void)
{
	int n;
	char y[10] = "ntse";
	char *x = ...]]></description><category></category></item><item><title><![CDATA[【C/C++】sizeof一个指向字符串的指针]]></title><link>https://blog.youkuaiyun.com/zztingfeng/article/details/97297456</link><guid>https://blog.youkuaiyun.com/zztingfeng/article/details/97297456</guid><author>zztingfeng</author><pubDate>Thu, 25 Jul 2019 20:36:35 +0800</pubDate><description><![CDATA[题目：

32位机器中，const char *p="welcome";

求sizeof（p）=？

答案：sizeof（p）=4，sizeof一个指向字符串的指针只返回一个指针的大小，32下即4个字节。
]]></description><category></category></item><item><title><![CDATA[【C++】有关inline函数的几点说明]]></title><link>https://blog.youkuaiyun.com/zztingfeng/article/details/97296426</link><guid>https://blog.youkuaiyun.com/zztingfeng/article/details/97296426</guid><author>zztingfeng</author><pubDate>Thu, 25 Jul 2019 20:31:54 +0800</pubDate><description><![CDATA[1、使用inline关键字的函数不一定会被编译器在调用处展开，编译器有权忽略这个请求，比如：若此函数体太大，则不会把它作为内联函数展开的；

2、定义在Class声明内的成员函数默认是inline函数；

3、inlin函数的定义和声明必须在头文件中进行。
...]]></description><category></category></item><item><title><![CDATA[【C++】std::stack容器]]></title><link>https://blog.youkuaiyun.com/zztingfeng/article/details/96707891</link><guid>https://blog.youkuaiyun.com/zztingfeng/article/details/96707891</guid><author>zztingfeng</author><pubDate>Sun, 21 Jul 2019 12:13:36 +0800</pubDate><description><![CDATA[stack（堆栈） 实现了一个先进后出（FILO）的数据结构。
头文件:
#include &lt;stack&gt;

基本方法：
操作、比较和分配堆栈
empty() 堆栈为空则返回真
pop() 移除栈顶元素
push() 在栈顶增加元素
size() 返回栈中元素数目
top() 返回栈顶元素
...]]></description><category></category></item><item><title><![CDATA[【C++】std::deque容器]]></title><link>https://blog.youkuaiyun.com/zztingfeng/article/details/96707464</link><guid>https://blog.youkuaiyun.com/zztingfeng/article/details/96707464</guid><author>zztingfeng</author><pubDate>Sun, 21 Jul 2019 12:07:45 +0800</pubDate><description><![CDATA[头文件 #include &lt;deque&gt;deque

容器类与vector类似，支持随机访问和快速插入删除，它在容器中某一位置上的操作所花费的是线性时间。与vector不同的是，deque还支持从开始端插入数据：push_front()。

构造函数：


deque&lt;Elem&gt; c 创建一个空的deque
deque&lt;Elem&gt; c1(c2) 复制一个dequ...]]></description><category></category></item><item><title><![CDATA[【C++】std::queue容器]]></title><link>https://blog.youkuaiyun.com/zztingfeng/article/details/96707076</link><guid>https://blog.youkuaiyun.com/zztingfeng/article/details/96707076</guid><author>zztingfeng</author><pubDate>Sun, 21 Jul 2019 12:03:51 +0800</pubDate><description><![CDATA[头文件：#include &lt;queue&gt;
与stack 模板类很相似，queue 模板类也需要两个模板参数，一个是元素类型，一个容器类型，元素类型是必要的，容器类型是可选的，默认为deque 类型。
定义queue 对象的示例代码如下：
queue&lt;int&gt; q1;
queue&lt;double&gt; q2;

queue 的基本操作有：
入队，如例：q.push(x)...]]></description><category></category></item><item><title><![CDATA[【C++】unordered_map与map区别]]></title><link>https://blog.youkuaiyun.com/zztingfeng/article/details/96706553</link><guid>https://blog.youkuaiyun.com/zztingfeng/article/details/96706553</guid><author>zztingfeng</author><pubDate>Sun, 21 Jul 2019 11:55:08 +0800</pubDate><description><![CDATA[1、内部实现机理
map： map内部实现了一个红黑树，该结构具有自动排序的功能，因此map内部的所有元素都是有序的，红黑树的每一个节点都代表着map的一个元素，因此，对于map进行的查找，删除，添加等一系列的操作都相当于是对红黑树进行这样的操作，故红黑树的效率决定了map的效率。
unordered_map: unordered_map内部实现了一个哈希表，因此其元素的排列顺序是杂乱的，无序...]]></description><category></category></item><item><title><![CDATA[【C++】std::unordered_map容器]]></title><link>https://blog.youkuaiyun.com/zztingfeng/article/details/96705507</link><guid>https://blog.youkuaiyun.com/zztingfeng/article/details/96705507</guid><author>zztingfeng</author><pubDate>Sun, 21 Jul 2019 11:52:17 +0800</pubDate><description><![CDATA[简述：

对于map，其内部数据结构为红黑树，因此所有元素插入到map里面都会排好序，而且搜索过程为平衡二叉树搜索，因此时间复杂度为O(logN)。我们知道还有一种快速的搜索方法，那边是哈希(又名散列)，利用哈希函数，通过哈希值能快速的查找到所需元素。unordered_map便是采用这种数据结构实现，其为无序映射，unordered _map与map的使用基本一样，都是key/value之间的映...]]></description><category></category></item><item><title><![CDATA[【C++】std::map容器]]></title><link>https://blog.youkuaiyun.com/zztingfeng/article/details/96704370</link><guid>https://blog.youkuaiyun.com/zztingfeng/article/details/96704370</guid><author>zztingfeng</author><pubDate>Sun, 21 Jul 2019 11:35:25 +0800</pubDate><description><![CDATA[map是C++的一种关联容器，包含键值对，提供了一对一的关系。

1、构造函数


map&lt;string,int &gt;mapstring;     map&lt;int,string&gt;mapint;
map&lt;sring,char&gt;mapstring;map&lt;char,string&gt;mapchar;
map&lt;char,int...]]></description><category></category></item><item><title><![CDATA[【C++】std::list容器]]></title><link>https://blog.youkuaiyun.com/zztingfeng/article/details/96704082</link><guid>https://blog.youkuaiyun.com/zztingfeng/article/details/96704082</guid><author>zztingfeng</author><pubDate>Sun, 21 Jul 2019 11:22:19 +0800</pubDate><description><![CDATA[定义：

List是stl实现的双向链表，与向量(vectors)相比, 它允许快速的插入和删除，但是随机访问却比较慢。使用时需要添加头文件


list&lt;int&gt; lst1;     //创建空list
list&lt;int&gt; lst2(5);    //创建含有5个元素的list
list&lt;int&gt; lst3(3,2);   //创建含有3个...]]></description><category></category></item></channel></rss>