<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_40554385的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_40554385</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_40554385]]></copyright><item><title><![CDATA[算法 排序乐园 堆与堆排序]]></title><link>https://blog.youkuaiyun.com/qq_40554385/article/details/78817009</link><guid>https://blog.youkuaiyun.com/qq_40554385/article/details/78817009</guid><author>qq_40554385</author><pubDate>Fri, 15 Dec 2017 21:40:59 +0800</pubDate><description><![CDATA[二叉堆的性质
父节点的键值总是大于等于(或小于等于)字节点的键值
父节点的键值总是大于等于的堆叫做最大堆，反之叫最小堆  堆的存储形式
下图中任何一个点 i,其父节点的下标是 (i-1)/2
点i的两个子节点的下标分别是 2i+1 与 2i+2   堆的操作 -  插入删除
在数组结尾增加一个元素： 先在对应位置插入元素，再重新对堆排序
删除第一个元素：先删除元素，然后将剩下来的堆重新排序
 在数组]]></description><category></category></item><item><title><![CDATA[算法 (排序乐园Lv-2) 插入排序代码实现]]></title><link>https://blog.youkuaiyun.com/qq_40554385/article/details/78747443</link><guid>https://blog.youkuaiyun.com/qq_40554385/article/details/78747443</guid><author>qq_40554385</author><pubDate>Thu, 07 Dec 2017 23:57:57 +0800</pubDate><description><![CDATA[游乐项目-2- 插入排序假设数组下标为a[0…n-1]
初始时a[0]自成一个有序区，无序区为a[1] ~ a[n-1] ,令i=1
将a[i]插入到前面的a[0] ~ a[i-1]的有序区里，形成a[0] ~ a[i]的有序区，i++
重复执行第二步直到数组全部有序  代码实现-1
void Insertsort_1(int a[], int n)  
{  
    int i, j, k;]]></description><category></category></item><item><title><![CDATA[算法 (排序乐园Lv-3) - Qsort代码实现]]></title><link>https://blog.youkuaiyun.com/qq_40554385/article/details/78737491</link><guid>https://blog.youkuaiyun.com/qq_40554385/article/details/78737491</guid><author>qq_40554385</author><pubDate>Thu, 07 Dec 2017 09:34:02 +0800</pubDate><description><![CDATA[游乐项目 - 1 - qsort分析以及代码实现
首先明白，流程是在不断重复排序分区的
分区过程，将比这个数大的全放到它右边，小于或等于它的全放到它的左边。
再对左右区间重复第二步，直到各区间只有一个数。
Step-1：
假设现在以这样的数组进行排序分区： 
 (1).首先将a[0]备份，再定义出一个i=0  -> 下界，一个j=长度-1 ->上界(2).从后开始向前，找一个小于等于X的数，[8]号]]></description><category></category></item><item><title><![CDATA[算法 渐进 大θ定理 / 实例分析]]></title><link>https://blog.youkuaiyun.com/qq_40554385/article/details/78736924</link><guid>https://blog.youkuaiyun.com/qq_40554385/article/details/78736924</guid><author>qq_40554385</author><pubDate>Thu, 07 Dec 2017 04:30:49 +0800</pubDate><description><![CDATA[定义：f(n)=O(g(n))成立 <-> 有自然数c与n0 使得对于所有n>n0的时候有f(n)< c*g(n)常规函数的O, Ω，θ均是本身[线性函数分析]   f(n) = 3n+2 利用定义方法证明时间复杂度 = O(n)   f(n) = 3n+2 < 4n 在n>2的时候成立 
   因此 f(n) 的时间复杂度 = 4n的时间复杂度 = O(n)
[平方函数分析]  f(n) =10n]]></description><category></category></item><item><title><![CDATA[数据结构  线性表/链表]]></title><link>https://blog.youkuaiyun.com/qq_40554385/article/details/78736908</link><guid>https://blog.youkuaiyun.com/qq_40554385/article/details/78736908</guid><author>qq_40554385</author><pubDate>Thu, 07 Dec 2017 02:43:51 +0800</pubDate><description><![CDATA[-Introduction:   数据域 + 指针域 = 节点(Node)-每个node仅仅包含一个指针，因此叫单链表 
-头指针就设置成这个链表的名字，就算是空链表也是需要头指针的设置一个头结点 -> 放在第一个节点之前，可以拿来存链表的长度
头结点不是必须的
如果有头结点，头指针就指向头结点，否则就指向第一个node
typedef struct xiaohan{
    datatype da]]></description><category></category></item><item><title><![CDATA[数据结构 线性表 / 顺序存储结构]]></title><link>https://blog.youkuaiyun.com/qq_40554385/article/details/78736878</link><guid>https://blog.youkuaiyun.com/qq_40554385/article/details/78736878</guid><author>qq_40554385</author><pubDate>Thu, 07 Dec 2017 01:42:41 +0800</pubDate><description><![CDATA[线性表的顺序存储与非线性存储： 
 - 线性存储方式找一块连续的内存，将数据元素依次存放在这块连续内存之中 
 - 顺序存储你需要知道一个起始位置以下的内容 - 都只建立了一个struct，利用struct里面的array结构描述顺序型线性表的构造与布局
在这样的一种构造里，线性表指的是一整个struct结构
同时一个list=一个struct
我们说的下标 / 位置 指的是struct里面数组的下]]></description><category></category></item><item><title><![CDATA[[编程基础题总结]]]></title><link>https://blog.youkuaiyun.com/qq_40554385/article/details/78727850</link><guid>https://blog.youkuaiyun.com/qq_40554385/article/details/78727850</guid><author>qq_40554385</author><pubDate>Wed, 06 Dec 2017 10:27:45 +0800</pubDate><description><![CDATA[由于instream.get可能会出错，因此在使用instream.get时候，用while(!instream.fail()) 来循环get
此外 instream.fail|需要一个起始状态，因此总是在上面的while 开始之前先执行一次instream.get再执行循环(这种几百年前的错误我居然还会再犯…难以置信…)
数组:   在initialisation/定义/创建 的时候不仅要写[ ]]]></description><category></category></item><item><title><![CDATA[Semaphore / 信号计数量[Version-2] / Sema的工作原理]]></title><link>https://blog.youkuaiyun.com/qq_40554385/article/details/78705835</link><guid>https://blog.youkuaiyun.com/qq_40554385/article/details/78705835</guid><author>qq_40554385</author><pubDate>Mon, 04 Dec 2017 07:48:34 +0800</pubDate><description><![CDATA[Introduction : Semaphore（后面简称Sema）是在多线程锁中常常用到的锁的一种
STEP-1-生成一些Sema 
显然一般情况下我们不会只用一个Sema，下面是示范如何生成一个集合的Sema并将集合的id返回创建semaphore的集合：semget() - 返回Sema集合的id#include <sys/sem.h>int semget(key_t key, int nse]]></description><category></category></item><item><title><![CDATA[算法  程序步 / 由程序步判断程序高效低效]]></title><link>https://blog.youkuaiyun.com/qq_40554385/article/details/78683489</link><guid>https://blog.youkuaiyun.com/qq_40554385/article/details/78683489</guid><author>qq_40554385</author><pubDate>Fri, 01 Dec 2017 09:48:49 +0800</pubDate><description><![CDATA[-Introduction:上一个例子里面，我们是利用操作计数的方法，来计算时间复杂度，但是忽略了其他步骤 
    -Introduction:在统计执行步数的过程中，要考虑到函数中所有部分的时间开销。任何行为都要统计案例：利用count统计一个函数的执行步数template<class T>
T Sum(T a[], int n){
    T tsum = 0;
    count++; //]]></description><category></category></item><item><title><![CDATA[算法 第二章 时间复杂度与空间复杂度]]></title><link>https://blog.youkuaiyun.com/qq_40554385/article/details/78682843</link><guid>https://blog.youkuaiyun.com/qq_40554385/article/details/78682843</guid><author>qq_40554385</author><pubDate>Fri, 01 Dec 2017 08:12:09 +0800</pubDate><description><![CDATA[时间复杂度定义： 
 进行算法分析时：
所有语句在一起的总的操作T(n)是关于数据规模n的一个函数
进而T(n)随着n的变化情况确定T(n)的数量级
算法的时间复杂度，记作T(n)= O(f(n)) 
它表示随着数据规模n的增大，算法执行时间的增长率与f(n)的增长率
f(n)是数据规模n的一个函数
这样用O来体现算法时间复杂度的方法，叫做大O记法。 
随着数据规模n的增大，T(n)增长最为缓慢的的]]></description><category></category></item><item><title><![CDATA[数据结构与算法C++ 第二章 练习题 Part-B (排序乐园升级版)]]></title><link>https://blog.youkuaiyun.com/qq_40554385/article/details/78682752</link><guid>https://blog.youkuaiyun.com/qq_40554385/article/details/78682752</guid><author>qq_40554385</author><pubDate>Fri, 01 Dec 2017 03:57:20 +0800</pubDate><description><![CDATA[-Introduction: 最好的操作与最坏的操作，期望的操作数量-  最好的操作计数，当然就是min(operation-p(I))  所有操作计数里面计数次数最少的那一次
-  最差的操作计数就是max(operation-p(I)) 所有操作计数里面计数次数最多的那一次
-平均操作计数：   
解释： 
这里面的p(I)代表这一次操作出现的概率 * 这一次操作计数假如所有的操作是等可能的出现]]></description><category></category></item><item><title><![CDATA[数据结构，算法与应用 第二章 练习题 Part-A(初级排序乐园) / 简单的内存消耗判断]]></title><link>https://blog.youkuaiyun.com/qq_40554385/article/details/78682750</link><guid>https://blog.youkuaiyun.com/qq_40554385/article/details/78682750</guid><author>qq_40554385</author><pubDate>Fri, 01 Dec 2017 03:49:37 +0800</pubDate><description><![CDATA[练习：  解决问题P时所需要的空间    -    S(P) = c + Sp(实例特征)  什么是实例特征  ->  由于是实例，所带来的特别之处有那些？例1：简单情况下，一个函数所需要的固定空间c 与 变化空间Sptemplate<class T>
T Abc(T& a, T& b, T& c){
    return a+b+b*c+(a+b-c)/(a+b)+4;
}那些因素有可能成为实例特]]></description><category></category></item><item><title><![CDATA[当你写Makefile的时候你在想什么]]></title><link>https://blog.youkuaiyun.com/qq_40554385/article/details/78670138</link><guid>https://blog.youkuaiyun.com/qq_40554385/article/details/78670138</guid><author>qq_40554385</author><pubDate>Wed, 29 Nov 2017 21:28:06 +0800</pubDate><description><![CDATA[“Clion简便，高效，也导致我连怎么编译都快忘了”Clion简便到他几乎把所有问题全考虑进去了，导致你甚至都没有意识到发生了什么就全部结束了
但是Makefile不吃这一套，所有应该有的问题全都会Warn甚至Error，魔幻
所有Make过程中出现过的错误：(1). warning: 
 deleting object of polymorphic class type ‘Piece’ which]]></description><category></category></item><item><title><![CDATA[“为什么我的Clion编译要这么久？”]]></title><link>https://blog.youkuaiyun.com/qq_40554385/article/details/78661033</link><guid>https://blog.youkuaiyun.com/qq_40554385/article/details/78661033</guid><author>qq_40554385</author><pubDate>Wed, 29 Nov 2017 07:30:24 +0800</pubDate><description><![CDATA[-“Clion最大的优点是在比Vs爽这么多的情况下却几乎能做到Vs大部分的功能”“Clion针对学生免费”但是Clion的安装是真的很头疼，我总结了一下，希望大家能顺利的用上ClionStep1.上网下载MinGW，记住是MinGW，不是Cygwin
MinGW (64位版本)的下载链接 -> MinGW(64位)下载链接
下载好了以后打开开始安装，安装路径选择默认的C盘安装，等着吧，等着就行了
S]]></description><category></category></item><item><title><![CDATA[C++ 未知数量参数/list的未知数量的初始化]]></title><link>https://blog.youkuaiyun.com/qq_40554385/article/details/78572395</link><guid>https://blog.youkuaiyun.com/qq_40554385/article/details/78572395</guid><author>qq_40554385</author><pubDate>Sun, 19 Nov 2017 00:50:13 +0800</pubDate><description><![CDATA[-Introduction:  List是类里面的一个数据成员，但是初始化的时候并不知道到底会有多少内容会被添加到list 
//混用 
关键词：initializer_list 
initializer_list是一种数据结构
把它放在构造函数的参数列表里，相当于对函数做出声明：这里会有一个列表的内容等待被执行
而它使用起来也与其他数据结构的操作有很多不一样：
(1).首先在使用ini_list关]]></description><category></category></item><item><title><![CDATA[Templates 的使用]]></title><link>https://blog.youkuaiyun.com/qq_40554385/article/details/78571447</link><guid>https://blog.youkuaiyun.com/qq_40554385/article/details/78571447</guid><author>qq_40554385</author><pubDate>Sat, 18 Nov 2017 21:35:19 +0800</pubDate><description><![CDATA[-Introduction : 你可以为你的函数写一个模板，也可以为你的类写一个模板。
为什么要为函数写一个模板？某个函数，针对不同数据。操作方法都是一样的，只是参数类型不同
当然利用函数重载是没问题的，但是一个一个定义很麻烦，所以我们需要函数模板
template< class 形参名, class 形参名, ……> 返回类型 函数名（参数列表）{ 函数体 }    //这里的class跟类没任何]]></description><category></category></item><item><title><![CDATA[Clion 问题汇总]]></title><link>https://blog.youkuaiyun.com/qq_40554385/article/details/78570595</link><guid>https://blog.youkuaiyun.com/qq_40554385/article/details/78570595</guid><author>qq_40554385</author><pubDate>Sat, 18 Nov 2017 19:22:58 +0800</pubDate><description><![CDATA[Clion 很好用，出了问题的Clion也让人很恼火，我就来记录一下Clion出过那些问题不工作的
(1). No rules to make target- 检查在cmake list中所描述的文件，在相对应的地址里面是否真的存在 
很多时候，里面写的东西其实在你的地址里面不存在
或者是因为有许多用不到的垃圾文件，你删掉了，但是在cmakelist里面仍然存在]]></description><category></category></item><item><title><![CDATA[C++ 指针/引用/常规/CONST型成员的初始化与使用]]></title><link>https://blog.youkuaiyun.com/qq_40554385/article/details/78566431</link><guid>https://blog.youkuaiyun.com/qq_40554385/article/details/78566431</guid><author>qq_40554385</author><pubDate>Sat, 18 Nov 2017 04:16:58 +0800</pubDate><description><![CDATA[-Introduction：类成员函数的参数是 常规/指针/引用  都有什么区别(1) 参数内容作为常规出现的时候代表了一种拷贝构造函数(2) 参数内容作为指针出现的时候代表了一种aggregation的关系，使用最为便捷
由于指针的灵活性还有不需要立刻赋值的特点，也导致其使用比较频繁
这里所说的灵活性是指指针可以随时更换指向的对象  
(3) 参数内容作为引用出现的时候代表了一种compositi]]></description><category></category></item><item><title><![CDATA[C++ 友元函数/实际使用的一些注意事项/重复定义]]></title><link>https://blog.youkuaiyun.com/qq_40554385/article/details/78546767</link><guid>https://blog.youkuaiyun.com/qq_40554385/article/details/78546767</guid><author>qq_40554385</author><pubDate>Thu, 16 Nov 2017 07:55:42 +0800</pubDate><description><![CDATA[友元函数可以分成1.外部函数 2.其他类函数成员作为友元函数 
其他的诸如友元函数导致信息不安全的老梗就不多说了，简单说说今天遇到的问题
重复定义问题，出现在 其他类成员作为友元函数的时候 
(1). 在A类的声明中写下函数
(2). 在A类外给出具体定义 / 在A类声明中直接给出定义都会导致->
(3). 之后再在目标类中写下 friend void A::function 就会报错“redefi]]></description><category></category></item><item><title><![CDATA[Effective C++_2]]></title><link>https://blog.youkuaiyun.com/qq_40554385/article/details/78535440</link><guid>https://blog.youkuaiyun.com/qq_40554385/article/details/78535440</guid><author>qq_40554385</author><pubDate>Tue, 14 Nov 2017 21:35:21 +0800</pubDate><description><![CDATA[123]]></description><category></category></item></channel></rss>