<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[peng_weida的专栏]]></title><description><![CDATA[hello, world]]></description><link>https://blog.youkuaiyun.com/peng_weida</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; peng_weida]]></copyright><item><title><![CDATA[OpenGL矩阵变换]]></title><link>https://blog.youkuaiyun.com/peng_weida/article/details/45847291</link><guid>https://blog.youkuaiyun.com/peng_weida/article/details/45847291</guid><author>peng_weida</author><pubDate>Tue, 19 May 2015 17:28:57 +0800</pubDate><description><![CDATA[文章转自：http://blog.youkuaiyun.com/lyx2007825/article/details/8792475



Overview

几何数据——顶点位置，和标准向量(normal vectors),在OpenGL 管道raterization 处理过程之前可通过顶点操作(Vertex Operation)和基本组合操作改变这些数据。



Object Coordinates

...]]></description><category></category></item><item><title><![CDATA[code::Blocks 中配置android x86的编译环境]]></title><link>https://blog.youkuaiyun.com/peng_weida/article/details/45845161</link><guid>https://blog.youkuaiyun.com/peng_weida/article/details/45845161</guid><author>peng_weida</author><pubDate>Tue, 19 May 2015 15:24:41 +0800</pubDate><description><![CDATA[之前是android arm 的编译环境，现需改为android x86的环境
1. Project--&gt;build options, 选择android平台，selected compiler 选择 GNU GCC Compiler，之前arm环境选的是 GNU GCC Compiler for ARM
2. Project --&gt; build options --&gt; Comp...]]></description><category></category></item><item><title><![CDATA[一个简单的OpenGL ES 3.0 示例 （Android NDK jni）]]></title><link>https://blog.youkuaiyun.com/peng_weida/article/details/45200241</link><guid>https://blog.youkuaiyun.com/peng_weida/article/details/45200241</guid><author>peng_weida</author><pubDate>Wed, 22 Apr 2015 20:52:26 +0800</pubDate><description><![CDATA[OpenGL ES 3.0 上的一个三角形例子，网上可以下载到android skd 版（java）和 android ndk (c&amp;c++版）

为了了解一下JNI，于是写了如下小程序。

这个例子是使用jni, java中调用c中的代码完成三角形的渲染, 其中shader代码保存在assets目录下，如下目录图：





其中，com_jnirenderer_RendererJNI...]]></description><category></category></item><item><title><![CDATA[加载ETC1格式编码的PVR压缩文件]]></title><link>https://blog.youkuaiyun.com/peng_weida/article/details/40116169</link><guid>https://blog.youkuaiyun.com/peng_weida/article/details/40116169</guid><author>peng_weida</author><pubDate>Wed, 15 Oct 2014 20:31:54 +0800</pubDate><description><![CDATA[今天在定义]]></description><category></category></item><item><title><![CDATA[单链表排序]]></title><link>https://blog.youkuaiyun.com/peng_weida/article/details/8680774</link><guid>https://blog.youkuaiyun.com/peng_weida/article/details/8680774</guid><author>peng_weida</author><pubDate>Sat, 16 Mar 2013 12:18:50 +0800</pubDate><description><![CDATA[写得很复杂，没有写在一个函数中，而是分了三个函数，也没去仔细检查，写在这方便查看，有错大家就指出哈
结构体定义为：

typedef struct _list
{
	int data;
	int key;
	struct _list *next;
}LIST;



要求按字段data大小排序
思路：
1. 找到字段data最小的节点
2.将步骤1中找到的节点移至头节]]></description><category></category></item><item><title><![CDATA[华为机试 删除字符串中所有给定的子串]]></title><link>https://blog.youkuaiyun.com/peng_weida/article/details/7974138</link><guid>https://blog.youkuaiyun.com/peng_weida/article/details/7974138</guid><author>peng_weida</author><pubDate>Thu, 13 Sep 2012 11:08:50 +0800</pubDate><description><![CDATA[问题描述： 
在给定字符串中查找所有特定子串并删除，如果没有找到相应子串，则不作任何操作。
要求实现函数： 
int delete_sub_str(const char *str, const char *sub_str, char *result_str)
【输入】 str：输入的被操作字符串
         sub_str：需要查找并删除的特定子字符串
【输出】 result_s]]></description><category></category></item><item><title><![CDATA[给定能随机生成整数1到5的函数，写出能随机生成整数1到7的函数]]></title><link>https://blog.youkuaiyun.com/peng_weida/article/details/7942682</link><guid>https://blog.youkuaiyun.com/peng_weida/article/details/7942682</guid><author>peng_weida</author><pubDate>Tue, 04 Sep 2012 16:39:47 +0800</pubDate><description><![CDATA[假设rand5能随机生成1~5的5个数(均等概率)，利用rand5生成rand7() 1~7(均等概率)

1. 利用rand5求出rand2(),当rand5生成的数大于2时，一直循环，直到它生成的数为1或者2，且生成1和2的概率均为1/2，因为生成1和生成2的概率是相等的。

2. 利用rand2生成0和1（减1即可），连续使用三次，共有8种可能（二进制表示）：000001 010 011 ...]]></description><category></category></item><item><title><![CDATA[关于ping程序]]></title><link>https://blog.youkuaiyun.com/peng_weida/article/details/7843504</link><guid>https://blog.youkuaiyun.com/peng_weida/article/details/7843504</guid><author>peng_weida</author><pubDate>Wed, 08 Aug 2012 17:20:51 +0800</pubDate><description><![CDATA[关于网络编程，知之甚少，linux环境下编程的经验也比较缺乏，于是乎，在百度文库上下载了一个关于ping的程序设计，照着将代码敲打一遍，顺便熟悉某些东东。敲完代码，运行时，发现错误极多，正好也试着学习用GDB调试。下面是一些琐碎的知识点，写写加深印象。

  1. 关于ping程序

    用于确定本地主机与网络中其它主机的网络通信情况，常使用ping程序。ping程序向指...]]></description><category></category></item><item><title><![CDATA[STL源码剖析---红黑树原理详解下]]></title><link>https://blog.youkuaiyun.com/peng_weida/article/details/7789630</link><guid>https://blog.youkuaiyun.com/peng_weida/article/details/7789630</guid><author>peng_weida</author><pubDate>Thu, 26 Jul 2012 15:45:57 +0800</pubDate><description><![CDATA[文章转自：http://blog.youkuaiyun.com/hackbuteer1/article/details/7760584

   算法导论书上给出的红黑树的性质如下，跟STL源码剖析书上面的4条性质大同小异。



 1、每个结点或是红色的，或是黑色的
 2、根节点是黑色的
 3、每个叶结点（NIL）是黑色的
 4、如果一个节点是红色的，则它的两个...]]></description><category></category></item><item><title><![CDATA[STL源码剖析---红黑树原理详解上]]></title><link>https://blog.youkuaiyun.com/peng_weida/article/details/7789574</link><guid>https://blog.youkuaiyun.com/peng_weida/article/details/7789574</guid><author>peng_weida</author><pubDate>Thu, 26 Jul 2012 15:37:16 +0800</pubDate><description><![CDATA[文章转自：http://blog.youkuaiyun.com/hackbuteer1/article/details/7740956

一、红黑树概述
 红黑树和我们以前学过的AVL树类似，都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡，从而获得较高的查找性能。不过自从红黑树出来后，AVL树就被放到了博物馆里，据说是红黑树有更好的效率，更高的统计性能。这一点在我们了解了红黑树的实现原理后...]]></description><category></category></item><item><title><![CDATA[STL源码剖析---deque]]></title><link>https://blog.youkuaiyun.com/peng_weida/article/details/7787751</link><guid>https://blog.youkuaiyun.com/peng_weida/article/details/7787751</guid><author>peng_weida</author><pubDate>Thu, 26 Jul 2012 10:16:38 +0800</pubDate><description><![CDATA[文章转自：http://blog.youkuaiyun.com/hackbuteer1/article/details/7729451

一、deque的中控器
 deque是连续空间（至少逻辑上看来如此），连续线性空间总令我们联想到array或vector。array无法成长，vector虽可成长，却只能向尾端成长，而且其所谓的成长原是个假象，事实上是（1）另觅更大空间；（2）将原数据复制过去；（...]]></description><category></category></item><item><title><![CDATA[STL源码剖析---list]]></title><link>https://blog.youkuaiyun.com/peng_weida/article/details/7785615</link><guid>https://blog.youkuaiyun.com/peng_weida/article/details/7785615</guid><author>peng_weida</author><pubDate>Wed, 25 Jul 2012 16:58:03 +0800</pubDate><description><![CDATA[文章转自：http://blog.youkuaiyun.com/hackbuteer1/article/details/7726116

   相较于vector的连续线性空间，list就显得复杂许多，它的好处是每次插入或删除一个元素，就配置或释放一个元素空间。因此，list对于空间的运用有绝对的精准，一点也不浪费。而且，对于任何位置的元素插入或元素移除，list永远是常数时间。
 list...]]></description><category></category></item><item><title><![CDATA[STL源码剖析---vector]]></title><link>https://blog.youkuaiyun.com/peng_weida/article/details/7784836</link><guid>https://blog.youkuaiyun.com/peng_weida/article/details/7784836</guid><author>peng_weida</author><pubDate>Wed, 25 Jul 2012 15:02:21 +0800</pubDate><description><![CDATA[文章转自：http://blog.youkuaiyun.com/hackbuteer1/article/details/7724547

vector容器概述
 vector的数据安排以及操作方式，与array非常相似。两者的唯一区别在于空间的运用的灵活性。array是静态空间，一旦配置了就不能改变；要换个大（或小）一点的房子，可以，一切琐细都得由客户端自己来：首先配置一块新空间，然后将元素从旧址一...]]></description><category></category></item><item><title><![CDATA[排列组合]]></title><link>https://blog.youkuaiyun.com/peng_weida/article/details/7756093</link><guid>https://blog.youkuaiyun.com/peng_weida/article/details/7756093</guid><author>peng_weida</author><pubDate>Tue, 17 Jul 2012 17:20:26 +0800</pubDate><description><![CDATA[概念就不用具体介绍了，这个不太容易忘记。
说下公式：
从n个不同元素中取出m个元素的排列数A(n,m) ＝ n(n-1)(n-2)....(n-m+1) = n！ / (n-m)！ 
从n个不同元素中取出m个元素的组合数C(n,m) ＝ A(n,m) / m！= n！/ ((n-m)！* m！) 
C(n,m) = C(n,n-m)
C(n,k) + C(n,k+1) = C(n+1,]]></description><category></category></item><item><title><![CDATA[卡特兰数列]]></title><link>https://blog.youkuaiyun.com/peng_weida/article/details/7744931</link><guid>https://blog.youkuaiyun.com/peng_weida/article/details/7744931</guid><author>peng_weida</author><pubDate>Fri, 13 Jul 2012 17:49:23 +0800</pubDate><description><![CDATA[以下内容摘自百度百科：http://baike.baidu.com/view/1163998.htm
如有侵权，请告知博主*_*
 
概念：
    卡特兰数列(catalan)经常出现在各种计数问题中，是组合数学中比较重要的数列之一。
    卡特兰数列的前几项为1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012]]></description><category></category></item><item><title><![CDATA[一个整数数组，长度为n，将其分为m份，使各份的和相等，求m的最大值]]></title><link>https://blog.youkuaiyun.com/peng_weida/article/details/7741888</link><guid>https://blog.youkuaiyun.com/peng_weida/article/details/7741888</guid><author>peng_weida</author><pubDate>Thu, 12 Jul 2012 20:34:17 +0800</pubDate><description><![CDATA[本文代码参考网址：http://blog.youkuaiyun.com/v_july_v/article/details/6870251
 
问题描述：一个整数数组，长度为n，将其分为m 份，使各份的和相等，求m 的最大值
比如{3，2，4，3，6} 可以分成{3，2，4，3，6} m=1;
{3,6}{2,4,3} m=2
{3,3}{2,4}{6} m=3 所以m 的最大值为3
 
算法分析]]></description><category></category></item><item><title><![CDATA[二叉树的遍历(递归和非递归)]]></title><link>https://blog.youkuaiyun.com/peng_weida/article/details/7723519</link><guid>https://blog.youkuaiyun.com/peng_weida/article/details/7723519</guid><author>peng_weida</author><pubDate>Fri, 06 Jul 2012 22:01:52 +0800</pubDate><description><![CDATA[包括前序、中序、后序的递归与非递归，以及层次遍历
前序非递归
(1) 当节点不为空时，访问完该节点数据后，该节点需要进栈保存，然后访问其左子树节点
(2) 当栈中节点出栈时，说明该节点及其左子树节点已经访问完成，出栈后进入其右子树进行访问


中序非递归
(1) 和前序非递归类似，不同的是访问节点数据的时机，在出栈时访问即可


后序非递归
(1) 需要一个标志来记录该节点数]]></description><category></category></item><item><title><![CDATA[求解无向连通图的关节点]]></title><link>https://blog.youkuaiyun.com/peng_weida/article/details/7720427</link><guid>https://blog.youkuaiyun.com/peng_weida/article/details/7720427</guid><author>peng_weida</author><pubDate>Thu, 05 Jul 2012 23:31:13 +0800</pubDate><description><![CDATA[参考数据结构(C语言版)第七章，算法7.10和7.11

求解思路
1.深度优先生成树的根是关节点的充要条件是它至少有两个子女
2.任何其它顶点u是关节点的充要条件是u至少有一个子女w，使得经过只由w，w的后代以及一条回边构成的路径不可能到达u的祖先，因为删除顶点u及其关联的边将使w及其后代与u的祖先断开联系。

    假设顶点w的祖先包括w本身，为了表示一个顶点经过其后代以及一条回]]></description><category></category></item><item><title><![CDATA[有向图的最长路径及是否存在环路结构]]></title><link>https://blog.youkuaiyun.com/peng_weida/article/details/7714709</link><guid>https://blog.youkuaiyun.com/peng_weida/article/details/7714709</guid><author>peng_weida</author><pubDate>Wed, 04 Jul 2012 12:26:24 +0800</pubDate><description><![CDATA[问题描述：
有n个长为m+1的字符串，如果某个字符串的最后m个字符与某个字符串的前m个字符匹配，则两个字符串可以连接。问这n个字符串最多可以连成一个多长的字符串，如果出现循环，则返回错误。
分析：
把每个字符串看成一个图的顶点，两个字符串可以连接就形成一条有向边。相当于判断一个有向图是否存在环以及求该有向图的最长路径。
可用图的深度优先遍历算法来求解，图用邻接表表示。
 
1. 求解有]]></description><category></category></item><item><title><![CDATA[决胜出比赛第一名]]></title><link>https://blog.youkuaiyun.com/peng_weida/article/details/7712581</link><guid>https://blog.youkuaiyun.com/peng_weida/article/details/7712581</guid><author>peng_weida</author><pubDate>Tue, 03 Jul 2012 16:53:16 +0800</pubDate><description><![CDATA[问题描述：

n支队伍比赛，分别编号为0，1，2。。。。n-1，已知它们之间的实力对比关系，存储在一个二维数组w[n][n]中，w[i][j] 的值代表编号为i，j的队伍中更强的一支。

所以w[i][j]=i 或者j，现在给出它们的出场顺序，并存储在数组order[n]中，比如order[n] = {4,3,5,8,1......}，那么第一轮比赛就是 4对3， 5对8。.......]]></description><category></category></item></channel></rss>