<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Yangping_Peng的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Yangping_Peng</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Yangping_Peng]]></copyright><item><title><![CDATA[二叉树]]></title><link>https://blog.youkuaiyun.com/Yangping_Peng/article/details/35556329</link><guid>https://blog.youkuaiyun.com/Yangping_Peng/article/details/35556329</guid><author>Yangping_Peng</author><pubDate>Sat, 28 Jun 2014 11:27:18 +0800</pubDate><description><![CDATA[1. 定义
二叉树(BinaryTree)是n(n≥0)个结点的有限集，它或者是空集(n=0)，或者由一个根结点及两棵互不相交的、分别称作这个根的左子树和右子树的二叉树组成。
二叉树的5中基本形态：
 


满二叉树：一棵深度为k且有2k-1个结点的二又树称为满二叉树，每一层上的结点数都达到最大值。


完全二叉树：若一棵二叉树至多只有最下面的两层上结点的度数可以小于2，并且最下]]></description><category></category></item><item><title><![CDATA[二叉查找树]]></title><link>https://blog.youkuaiyun.com/Yangping_Peng/article/details/35273157</link><guid>https://blog.youkuaiyun.com/Yangping_Peng/article/details/35273157</guid><author>Yangping_Peng</author><pubDate>Fri, 27 Jun 2014 15:52:09 +0800</pubDate><description><![CDATA[1. 引入
以顺序表作为存储结构的查找算法中，二分查找效率最高。但二分查找要求表按关键字有序，且不能用链表作存储结构，因此，当表的插入或删除操作频繁时，为维护表的有序性，势必要移动表中很多结点。这种由移动结点引起的额外时间开销，就会抵消二分查找的优点。也就是说，二分查找只适用于静态查找表。若要进行高效率的查找与删除操作，可采用动态查找表作为存储结构，如二叉查找树(Binary Search Tr]]></description><category></category></item><item><title><![CDATA[希尔排序]]></title><link>https://blog.youkuaiyun.com/Yangping_Peng/article/details/34918171</link><guid>https://blog.youkuaiyun.com/Yangping_Peng/article/details/34918171</guid><author>Yangping_Peng</author><pubDate>Thu, 26 Jun 2014 21:03:43 +0800</pubDate><description><![CDATA[1. 问题描述


2. 算法思想

       将待排序数据分成已排序部分sorted和未排序部分unsorted。插入表示的是将未排序部分unsorted中一个数据key插入到已排序的数据sorted当中。假设数据的个数为 N，初始时将第一个数据作为已排序部分，剩下的 N-1 个数据作为未排序部分。如此，总共执行 N-1
 次插入，便可完成对输入数据的排序。
       此思]]></description><category></category></item><item><title><![CDATA[线性表的顺序表示与实现--顺序表]]></title><link>https://blog.youkuaiyun.com/Yangping_Peng/article/details/25658961</link><guid>https://blog.youkuaiyun.com/Yangping_Peng/article/details/25658961</guid><author>Yangping_Peng</author><pubDate>Tue, 13 May 2014 20:04:37 +0800</pubDate><description><![CDATA[未完待续...]]></description><category></category></item><item><title><![CDATA[线性表的定义]]></title><link>https://blog.youkuaiyun.com/Yangping_Peng/article/details/8714439</link><guid>https://blog.youkuaiyun.com/Yangping_Peng/article/details/8714439</guid><author>Yangping_Peng</author><pubDate>Mon, 12 May 2014 22:59:16 +0800</pubDate><description><![CDATA[线性结构特点：
在数据元素的非空有限集中：


存在惟一的一个被称做“第一个”的数据元素。存在惟一的一个被称为“最后一个”的数据元素。除了第一个和最后一个元素外，其他元素都有一个直接前驱和一个直接后继，第一个元素有一个直接后继，没有直接前驱，最后一个元素没有直接后继，有一个直接前驱。


线性表是最常用且最简单的一种数据结构。同一线性表中的元素属于同一数据对象，相邻元素之间存在序偶关]]></description><category></category></item><item><title><![CDATA[快速排序]]></title><link>https://blog.youkuaiyun.com/Yangping_Peng/article/details/24473935</link><guid>https://blog.youkuaiyun.com/Yangping_Peng/article/details/24473935</guid><author>Yangping_Peng</author><pubDate>Fri, 25 Apr 2014 15:32:01 +0800</pubDate><description><![CDATA[1. 问题描述




2. 算法思想
    利用分而治之和递归的思想将数据序列划分成越来越小的子表，再对子表排序，最后用递归的方法将排好序的子表合并为越来越大的有序序列。归并排序包括两个步骤：
1)        划分子表并排序
2)        合并子表
常见的为二路归并排序。
 
3. 伪代码实现









4. C++实现
 

]]></description><category></category></item><item><title><![CDATA[归并排序]]></title><link>https://blog.youkuaiyun.com/Yangping_Peng/article/details/24031785</link><guid>https://blog.youkuaiyun.com/Yangping_Peng/article/details/24031785</guid><author>Yangping_Peng</author><pubDate>Fri, 18 Apr 2014 17:06:04 +0800</pubDate><description><![CDATA[输入:  n个数  。
输出:  输入序列的的重新排序 ，使得 。]]></description><category></category></item><item><title><![CDATA[插入排序]]></title><link>https://blog.youkuaiyun.com/Yangping_Peng/article/details/22757319</link><guid>https://blog.youkuaiyun.com/Yangping_Peng/article/details/22757319</guid><author>Yangping_Peng</author><pubDate>Tue, 01 Apr 2014 21:48:37 +0800</pubDate><description><![CDATA[1. 问题描述



2. 算法思想
        将待排序数据序列分成已序部分sorted和未排序部分unsorted。每迭代一次，将unsorted中的一个元素key插入到sorted中。迭代结束时，即完成了对输入序列的排序。此思想类似打扑克牌时摸牌阶段。
 
3. 伪代码实现







4. C++实现
 

4. 算法复杂度分析

时间复杂度：]]></description><category></category></item><item><title><![CDATA[堆排序]]></title><link>https://blog.youkuaiyun.com/Yangping_Peng/article/details/9294245</link><guid>https://blog.youkuaiyun.com/Yangping_Peng/article/details/9294245</guid><author>Yangping_Peng</author><pubDate>Wed, 10 Jul 2013 22:52:28 +0800</pubDate><description><![CDATA[堆   （二叉）堆数据结构是一种数组对象，它的每个元素包含一个键K，满足下述的性质：对于数组中的位置i（其中1≤i≤，n为数组元素个数）
                                    Ki≥K2*i且 Ki≥K2*i+1    （1）                    
                                    Ki≤K2*i且 Ki]]></description><category></category></item><item><title><![CDATA[字符数组、字符指针；sizeof、strlen]]></title><link>https://blog.youkuaiyun.com/Yangping_Peng/article/details/8817430</link><guid>https://blog.youkuaiyun.com/Yangping_Peng/article/details/8817430</guid><author>Yangping_Peng</author><pubDate>Thu, 18 Apr 2013 11:55:44 +0800</pubDate><description><![CDATA[对于字符数组与字符指针:
1. 以字符串形式出现的，编译器都会为该字符串自动添加一个'\0'作为结束符(ASCII码为0x00)，如在代码中写"abc",那么编译器存储的是"abc\0"。
2. 字符串字面值作为字符指针的初始值   
    ＂hello＂是一个字符串字面值，编译器将其作为const char*处理，与之相关联的内存空间位于内存的只读部分，即允许编译器重用指向等价字符串直接量的]]></description><category></category></item><item><title><![CDATA[结构体和类]]></title><link>https://blog.youkuaiyun.com/Yangping_Peng/article/details/8765040</link><guid>https://blog.youkuaiyun.com/Yangping_Peng/article/details/8765040</guid><author>Yangping_Peng</author><pubDate>Tue, 16 Apr 2013 20:51:31 +0800</pubDate><description><![CDATA[结构体和类
    在C++中，结构体和类惟一的区别是默认访问权限和默认继承访问级别不同。结构体的默认访问权限为public，派生类默认为public继承；而类的默认访问权限为private，派生类默认为private继承。它们都具有构造函数、析构函数和成员函数。它们都是抽象的概念，只能表示某个群体，无法确定这个群体中的某个独立个体；而对象则是群体中独立存在的个体。
对象
    对象的大小]]></description><category></category></item><item><title><![CDATA[函数的工作原理]]></title><link>https://blog.youkuaiyun.com/Yangping_Peng/article/details/8748845</link><guid>https://blog.youkuaiyun.com/Yangping_Peng/article/details/8748845</guid><author>Yangping_Peng</author><pubDate>Tue, 02 Apr 2013 09:53:34 +0800</pubDate><description><![CDATA[函数调用的工作流程  
传递参数：通过栈(_cdecl,_stdcall)或寄存器（_fastcall）。函数调用：使用call指令调用函数，并将返回地址压入栈中。保存栈底：将调用方的栈底寄存器ebp压栈。申请栈空间，并保存寄存器环境：根据局部变量的多少提升esp（add esp,n）来开辟栈空间，用于存放函数的局部变量（VC6.0中debug模式这部分空间初始化为0XCC），并将函数中要用到的]]></description><category></category></item><item><title><![CDATA[数据结构 绪论]]></title><link>https://blog.youkuaiyun.com/Yangping_Peng/article/details/8711978</link><guid>https://blog.youkuaiyun.com/Yangping_Peng/article/details/8711978</guid><author>Yangping_Peng</author><pubDate>Sun, 24 Mar 2013 12:27:41 +0800</pubDate><description><![CDATA[一、基本概念数据：  对客观事物的符号表示；在计算机科学中指能输入到计算机并被计算机程序处理的符号的总称。数据元素：也称为记录、结点。是数据的基本单位，在计算机程序中作为整体一个整体来处理。又是一个数据元素可包含多个数据项。数据项是数据部可分割的最小单位。如一本书的书目信息是一个数据元素，它包含多个数据项，如书名、作者名、ISBN、价格等。数据对象： 是具有相同性质数据元素的集合，是数据的一个子集]]></description><category></category></item></channel></rss>