<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[业精于勤，而荒于嬉； 行成于思，而毁于随。]]></title><description><![CDATA[专注Linux C/C++，shell，python，算法、网路、大数据、云服务、一切与服务器编程相关的东西。爱好看书、结交朋友、骑车、篮球。               ]]></description><link>https://blog.youkuaiyun.com/mr_chenping</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mr_chenping]]></copyright><item><title><![CDATA[数据结构——算法之（043）（c++各种排序算法实现）]]></title><link>https://blog.youkuaiyun.com/mr_chenping/article/details/46440587</link><guid>https://blog.youkuaiyun.com/mr_chenping/article/details/46440587</guid><author>mr_chenping</author><pubDate>Wed, 10 Jun 2015 13:04:52 +0800</pubDate><description><![CDATA[【申明：本文仅限于自我归纳总结和相互交流，有纰漏还望各位指出。 联系邮箱：Mr_chenping@163.com】

题目：

c++ 各种排序算法实现
题目分析：

具体排序原理参考相关算法书籍


算法实现：



#include 

static void swap(int *a, int *b)
{
	int tmp;
	tmp = *a;
	*a = *b;]]></description><category></category></item><item><title><![CDATA[数据结构——算法之（042）（字符串移位包含的问题, s1是否可以由s2移位后得到）]]></title><link>https://blog.youkuaiyun.com/mr_chenping/article/details/46440543</link><guid>https://blog.youkuaiyun.com/mr_chenping/article/details/46440543</guid><author>mr_chenping</author><pubDate>Wed, 10 Jun 2015 13:00:39 +0800</pubDate><description><![CDATA[【申明：本文仅限于自我归纳总结和相互交流，有纰漏还望各位指出。 联系邮箱：Mr_chenping@163.com】

题目：

字符串移位包含的问题, s1是否可以由s2移位后得到
题目分析：



1、顺序遍历字符串s1

2、每次左移一个字符与s2比较

算法实现：

#include 
#include 

int is_rotate_str(char *des]]></description><category></category></item><item><title><![CDATA[数据结构——算法之（041）（寻找数组中的最大值和最小值）]]></title><link>https://blog.youkuaiyun.com/mr_chenping/article/details/46440511</link><guid>https://blog.youkuaiyun.com/mr_chenping/article/details/46440511</guid><author>mr_chenping</author><pubDate>Wed, 10 Jun 2015 12:54:51 +0800</pubDate><description><![CDATA[【申明：本文仅限于自我归纳总结和相互交流，有纰漏还望各位指出。 联系邮箱：Mr_chenping@163.com】

题目：

寻找数组中的最大值和最小值
题目分析：

1、时间复杂度0(1)

算法实现：

#include 

void get_array_max_and_min(int *array, int array_size, int *max, int *min]]></description><category></category></item><item><title><![CDATA[数据结构——算法之（040）（最大公约数问题）]]></title><link>https://blog.youkuaiyun.com/mr_chenping/article/details/46440479</link><guid>https://blog.youkuaiyun.com/mr_chenping/article/details/46440479</guid><author>mr_chenping</author><pubDate>Wed, 10 Jun 2015 12:51:32 +0800</pubDate><description><![CDATA[【申明：本文仅限于自我归纳总结和相互交流，有纰漏还望各位指出。 联系邮箱：Mr_chenping@163.com】

题目：

最大公约数问题
题目分析：

编程之美上的经典算法

算法实现：

#include 

int gcd(int x, int y)
{
	return ((!y) ? x: gcd(y, x%y));
}

int main(int argc, c]]></description><category></category></item><item><title><![CDATA[数据结构——算法之（039）（ip合法性检查）]]></title><link>https://blog.youkuaiyun.com/mr_chenping/article/details/46440415</link><guid>https://blog.youkuaiyun.com/mr_chenping/article/details/46440415</guid><author>mr_chenping</author><pubDate>Wed, 10 Jun 2015 12:48:40 +0800</pubDate><description><![CDATA[【申明：本文仅限于自我归纳总结和相互交流，有纰漏还望各位指出。 联系邮箱：Mr_chenping@163.com】

题目：

ip合法性检查
题目分析：

(1) 字符串只含有数字和'.'
(2) 长度在7-15之间(0.0.0.0--255.255.255.255)
(3) 每个数字在0-255之间
(4) '.'号不能超过3个,且不能连续

算法实现：

#inc]]></description><category></category></item><item><title><![CDATA[数据结构——算法之（038）（找出两个数之间的素数的个数，并打印）]]></title><link>https://blog.youkuaiyun.com/mr_chenping/article/details/36014905</link><guid>https://blog.youkuaiyun.com/mr_chenping/article/details/36014905</guid><author>mr_chenping</author><pubDate>Mon, 30 Jun 2014 17:18:53 +0800</pubDate><description><![CDATA[【申明：本文仅限于自我归纳总结和相互交流，有纰漏还望各位指出。 联系邮箱：Mr_chenping@163.com】

题目：

找出两个数之间的素数的个数,并打印
题目分析：

1、素数是只能被1和本身整除的数

算法实现：
#include 

/*
** 找出两个数之间的素数的个数,并打印
** 注意:只能被1和本身整除的数
*/
int count_prime_numbe]]></description><category></category></item><item><title><![CDATA[数据结构——算法之（037）（数值的整数次方）]]></title><link>https://blog.youkuaiyun.com/mr_chenping/article/details/36014797</link><guid>https://blog.youkuaiyun.com/mr_chenping/article/details/36014797</guid><author>mr_chenping</author><pubDate>Mon, 30 Jun 2014 17:15:19 +0800</pubDate><description><![CDATA[【申明：本文仅限于自我归纳总结和相互交流，有纰漏还望各位指出。 联系邮箱：Mr_chenping@163.com】

题目：

数值的整数次方.实现函数double Power(double base, int exponent),求base 的exponent次方,不需要考虑溢出
题目分析：

1、要考虑double型变量的比较

2、正负数的不同点

算法实现：
#in]]></description><category></category></item><item><title><![CDATA[数据结构——算法之（036）（输出字符串的所有排列）]]></title><link>https://blog.youkuaiyun.com/mr_chenping/article/details/36014233</link><guid>https://blog.youkuaiyun.com/mr_chenping/article/details/36014233</guid><author>mr_chenping</author><pubDate>Mon, 30 Jun 2014 17:13:16 +0800</pubDate><description><![CDATA[【申明：本文仅限于自我归纳总结和相互交流，有纰漏还望各位指出。 联系邮箱：Mr_chenping@163.com】

题目：

输出字符串的所有排列，如 abc 的全排列: abc, acb, bca, dac, cab, cba
题目分析：

1、想遍历字符串，然后顺序交换字符串的两个字符，然后再次递归后，把刚才那两个字符交换回来

算法实现：
#include 
using]]></description><category></category></item><item><title><![CDATA[数据结构——算法之（035）（时钟的时分秒针每天重叠几次？时分每天相遇几次？分秒每小时遇到几次？）]]></title><link>https://blog.youkuaiyun.com/mr_chenping/article/details/36013757</link><guid>https://blog.youkuaiyun.com/mr_chenping/article/details/36013757</guid><author>mr_chenping</author><pubDate>Mon, 30 Jun 2014 17:07:52 +0800</pubDate><description><![CDATA[【申明：本文仅限于自我归纳总结和相互交流，有纰漏还望各位指出。 联系邮箱：Mr_chenping@163.com】

题目：

两个有序单链表合并为一个有序的单链表（默认升序）
题目分析：

1、因为两个链表都是有序的，所以首先要记录那个链表头最小

2、大致思想是用一个虚拟节点顺序连接两个链表中的节点，并且顺移两个链表中头指针，让其一直 指向第一个未被连接的节点

算法实现]]></description><category></category></item><item><title><![CDATA[数据结构——算法之（034）（编写一个函数求一个数组中的第二大数）]]></title><link>https://blog.youkuaiyun.com/mr_chenping/article/details/36013341</link><guid>https://blog.youkuaiyun.com/mr_chenping/article/details/36013341</guid><author>mr_chenping</author><pubDate>Mon, 30 Jun 2014 17:02:41 +0800</pubDate><description><![CDATA[【申明：本文仅限于自我归纳总结和相互交流，有纰漏还望各位指出。 联系邮箱：Mr_chenping@163.com】

题目：

编写一个函数求一个数组中的第二大数
题目分析：

1、要想找到第二大数，很自然想到，你必须找到第一大数

2、顺序遍历数组，用两个零时变量记录当前的最大值和第二大值

算法实现：
#include 

int search_second_max(i]]></description><category></category></item><item><title><![CDATA[数据结构——算法之（033）（两个有序单链表合并为一个有序的单链表）]]></title><link>https://blog.youkuaiyun.com/mr_chenping/article/details/31735005</link><guid>https://blog.youkuaiyun.com/mr_chenping/article/details/31735005</guid><author>mr_chenping</author><pubDate>Tue, 17 Jun 2014 09:53:21 +0800</pubDate><description><![CDATA[【申明：本文仅限于自我归纳总结和相互交流，有纰漏还望各位指出。 联系邮箱：Mr_chenping@163.com】

题目：

两个有序单链表合并为一个有序的单链表（默认升序）
题目分析：

1、因为两个链表都是有序的，所以首先要记录那个链表头最小

2、大致思想是用一个虚拟节点顺序连接两个链表中的节点，并且顺移两个链表中头指针，让其一直 指向第一个未被连接的节点

算法实现]]></description><category></category></item><item><title><![CDATA[数据结构——算法之（032）（求两个串中的第一个最长子串）]]></title><link>https://blog.youkuaiyun.com/mr_chenping/article/details/31734057</link><guid>https://blog.youkuaiyun.com/mr_chenping/article/details/31734057</guid><author>mr_chenping</author><pubDate>Tue, 17 Jun 2014 09:44:21 +0800</pubDate><description><![CDATA[【申明：本文仅限于自我归纳总结和相互交流，有纰漏还望各位指出。 联系邮箱：Mr_chenping@163.com】

题目：

求两个串中的第一个最长子串(神州数码以前试题).如"abractyeyt","dgdsaeactyey"的最大子串为"actyey".
题目分析：

1、这里只是实现了简单的字符串算法（最大支持字符串长度64），主要是展示算法思想

2、思路是把2个字符]]></description><category></category></item><item><title><![CDATA[数据结构——算法之（031）（将字符串中所有小写字母排在大写字母的前面）]]></title><link>https://blog.youkuaiyun.com/mr_chenping/article/details/31733409</link><guid>https://blog.youkuaiyun.com/mr_chenping/article/details/31733409</guid><author>mr_chenping</author><pubDate>Tue, 17 Jun 2014 09:37:05 +0800</pubDate><description><![CDATA[【申明：本文仅限于自我归纳总结和相互交流，有纰漏还望各位指出。 联系邮箱：Mr_chenping@163.com】

题目：

函数将字符串中的字符'*'移到串的前部分，前面的非'*'字符后移，但不能改变非'*'字符的先后顺序,函数返回串中字符'*'的数量。
题目分析：

1、需要保持非'*'字符的顺序

2、不开辟额外的空间

3、用快慢指针，指向字符串尾巴，快指针指向非‘]]></description><category></category></item><item><title><![CDATA[数据结构——算法之（030）（将字符串中所有小写字母排在大写字母的前面）]]></title><link>https://blog.youkuaiyun.com/mr_chenping/article/details/31732509</link><guid>https://blog.youkuaiyun.com/mr_chenping/article/details/31732509</guid><author>mr_chenping</author><pubDate>Tue, 17 Jun 2014 09:29:22 +0800</pubDate><description><![CDATA[【申明：本文仅限于自我归纳总结和相互交流，有纰漏还望各位指出。 联系邮箱：Mr_chenping@163.com】

题目：

有一个由大小写组成的字符串，现在需要对他进行修改，将其中的所有小写字母排在大写字母的前面

开辟足够少的空间，时间复杂度O（n）
题目分析：

1、字符串从新排序后没有要求保持以前的顺序

2、用两个指针分别指向字符串头和尾，头指针指向每次指向大写字]]></description><category></category></item><item><title><![CDATA[数据结构——算法之（029）（ 字符串原地压缩）]]></title><link>https://blog.youkuaiyun.com/mr_chenping/article/details/31732001</link><guid>https://blog.youkuaiyun.com/mr_chenping/article/details/31732001</guid><author>mr_chenping</author><pubDate>Tue, 17 Jun 2014 09:21:30 +0800</pubDate><description><![CDATA[【申明：本文仅限于自我归纳总结和相互交流，有纰漏还望各位指出。 联系邮箱：Mr_chenping@163.com】

题目：

字符串原地压缩,题目描述:"eeeeeaaaff" 压缩为"e5a3f2",请编程实现
题目分析：

1、原地压缩，意思是不开辟额外的空间

2、应该考虑单个字符不压缩,比如‘q’压缩过后还是‘q’,而不应该是‘q1’

3、压缩后某个字符个数是多位]]></description><category></category></item><item><title><![CDATA[数据结构——算法之（028）（ 寻找其中的一个子字符串个数）]]></title><link>https://blog.youkuaiyun.com/mr_chenping/article/details/31394739</link><guid>https://blog.youkuaiyun.com/mr_chenping/article/details/31394739</guid><author>mr_chenping</author><pubDate>Mon, 16 Jun 2014 16:56:22 +0800</pubDate><description><![CDATA[【申明：本文仅限于自我归纳总结和相互交流，有纰漏还望各位指出。 联系邮箱：Mr_chenping@163.com】

题目：
已知一个字符串,比如asderwsde,寻找其中的一个子字符串比如sde 的个数,如果没有返回0,有的话返回子字符串的个数
题目分析：
1、顺序遍历字符串，然后用strncmp比较即可
算法实现：
#include 
#include 

int sub_st]]></description><category></category></item><item><title><![CDATA[数据结构——算法之（027）（ 在O(1)时间内删除链表结点）]]></title><link>https://blog.youkuaiyun.com/mr_chenping/article/details/31393743</link><guid>https://blog.youkuaiyun.com/mr_chenping/article/details/31393743</guid><author>mr_chenping</author><pubDate>Mon, 16 Jun 2014 16:51:25 +0800</pubDate><description><![CDATA[【申明：本文仅限于自我归纳总结和相互交流，有纰漏还望各位指出。 联系邮箱：Mr_chenping@163.com】

题目：
在O(1)时间内删除链表结点，且不知道链表头
题目分析：
1、把要删除节点的下一个节点的数据拷贝到要删除的节点
2、把下一个节点删除

算法实现：
#include 
#include 

typedef struct _list_node
{
	int]]></description><category></category></item><item><title><![CDATA[C++迭代器失效的问题 汇总]]></title><link>https://blog.youkuaiyun.com/mr_chenping/article/details/30548507</link><guid>https://blog.youkuaiyun.com/mr_chenping/article/details/30548507</guid><author>mr_chenping</author><pubDate>Fri, 13 Jun 2014 21:54:44 +0800</pubDate><description><![CDATA[首先对于vector而言，添加和删除操作可能使容器的部分或者全部迭代器失效。那为什么迭代器会失效呢？vector元素在内存中是顺序存储，试想：如果当前容器中已经存在了10个元素，现在又要添加一个元素到容器中，但是内存中紧跟在这10个元素后面没有一个空闲空间，而vector的元素必须顺序存储一边索引访问，所以我们不能在内存中随便找个地方存储这个元素。于是vector必须重新分配存储空间，用来存放原来]]></description><category></category></item><item><title><![CDATA[数据结构——算法之（026）（ 调整数组顺序使奇数位于偶数前面）]]></title><link>https://blog.youkuaiyun.com/mr_chenping/article/details/28425019</link><guid>https://blog.youkuaiyun.com/mr_chenping/article/details/28425019</guid><author>mr_chenping</author><pubDate>Wed, 04 Jun 2014 16:00:15 +0800</pubDate><description><![CDATA[【申明：本文仅限于自我归纳总结和相互交流，有纰漏还望各位指出。 联系邮箱：Mr_chenping@163.com】

题目：
输入一个整数数组，实现一个函数调整数组的元素顺序，使得奇数位于偶数的前半部分，偶数位于数组的后半部分。时间复杂度O（n）
题目分析：
类似题目：


（1）没有要求调整后，位置不可以变化

（2）时间复杂度智能遍历一次

算法实现：
#includ]]></description><category></category></item><item><title><![CDATA[数据结构——算法之（025）（ 求一个数组的最长递减子序列）]]></title><link>https://blog.youkuaiyun.com/mr_chenping/article/details/28424679</link><guid>https://blog.youkuaiyun.com/mr_chenping/article/details/28424679</guid><author>mr_chenping</author><pubDate>Wed, 04 Jun 2014 15:55:17 +0800</pubDate><description><![CDATA[【申明：本文仅限于自我归纳总结和相互交流，有纰漏还望各位指出。 联系邮箱：Mr_chenping@163.com】

题目：
创新工场（算法）：
求一个数组的最长递减子序列 比如{9，4，3，2，5，4，3，2}的最长递减子序列为{9，5，4，3，2}

题目分析：

一、这个题目类似：在一个字符串中求最长数字串

（1）快慢指针操作，每次指针调整前，先保存上一次的值

（]]></description><category></category></item></channel></rss>