<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Harold_Finch的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Harold_Finch</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Harold_Finch]]></copyright><item><title><![CDATA[C++句柄和指针的区别]]></title><link>https://blog.youkuaiyun.com/Harold_Finch/article/details/77920488</link><guid>https://blog.youkuaiyun.com/Harold_Finch/article/details/77920488</guid><author>Harold_Finch</author><pubDate>Sun, 10 Sep 2017 10:17:00 +0800</pubDate><description><![CDATA[句柄实际上是一种指向某种资源的指针，但与指针又有所不同：指针对应一个数据在内存中的地址，得到了指针就可以自由地修改该数据。Windows并不希望一般程序员修改其内部数据结构，因为这样不太安全。所以Windows给每个使用GlobalAlloc等函数声明地内存区域指定一个句柄（本质上仍是一个指针，但不要直接操作它），平时你只是在调用API函数利用这个句柄来说明要操作哪段内存。当你需要对某个内存进行直]]></description><category></category></item><item><title><![CDATA[流水作业调度（动态规划）]]></title><link>https://blog.youkuaiyun.com/Harold_Finch/article/details/77822054</link><guid>https://blog.youkuaiyun.com/Harold_Finch/article/details/77822054</guid><author>Harold_Finch</author><pubDate>Sun, 03 Sep 2017 14:14:03 +0800</pubDate><description><![CDATA[【问题描述】
n个作业{0，1，2，...n}在2台机器M1和M2组成的流水线上完成加工。每个作业加工的顺序都是现在M1上加工，后在M2上加工，在两台机器上加工的时间分别为ai和bi。
【目标】
确定这n个作业的加工顺序，使得从第一台作业开始加工，到最后一个作业完成加工所需时间最少。
【算法描述】
流水作业调度问题的Johnson法则
（1）令
（2）将N1中作业依 t[i,1]的非]]></description><category></category></item><item><title><![CDATA[二分搜索（vector动态输入）]]></title><link>https://blog.youkuaiyun.com/Harold_Finch/article/details/77816310</link><guid>https://blog.youkuaiyun.com/Harold_Finch/article/details/77816310</guid><author>Harold_Finch</author><pubDate>Sun, 03 Sep 2017 10:36:45 +0800</pubDate><description><![CDATA[二分搜缩简单，注意vector动态输入#include
#include
using namespace std;

int BinarySearch(vector&a,int x)
{
	if (a.size() == 0)
		return -1;
	int len = a.size();
	int left = 0;
	int right = len - 1;
	while (left <=]]></description><category></category></item><item><title><![CDATA[整数划分问题]]></title><link>https://blog.youkuaiyun.com/Harold_Finch/article/details/77815683</link><guid>https://blog.youkuaiyun.com/Harold_Finch/article/details/77815683</guid><author>Harold_Finch</author><pubDate>Sun, 03 Sep 2017 09:37:05 +0800</pubDate><description><![CDATA[为求不同的划分，则将划分的元素按照从大到小排序（全局序约束去除了对称性带来的重复）
设n的最大加数
1、q(n,1)=1
2、q(n,m)=q(n,n),m>n
3、q(n,n)=q(n,n-1)+1
4、q(n,m)=q(n,m-1)+q(n-m,m)
对于4的解释：
a。划分中包含m的情况，即{m,{x1,x2,...,xi}}，其中{x1,x2,...,xi}和为n-m，因此在]]></description><category></category></item><item><title><![CDATA[排列问题]]></title><link>https://blog.youkuaiyun.com/Harold_Finch/article/details/77815019</link><guid>https://blog.youkuaiyun.com/Harold_Finch/article/details/77815019</guid><author>Harold_Finch</author><pubDate>Sun, 03 Sep 2017 09:16:18 +0800</pubDate><description><![CDATA[题目】设计一个递归算法生成n个元素{r1,r2,…,rn}的全排列。
【算法讲解】
设R={r1,r2,…,rn}是要进行排列的n个元素，Ri=R-{ri}。
集合X中元素的全排列记为perm(X)。
(ri)perm(X)表示在全排列perm(X)的每一个排列前加上前缀得到的排列。
R的全排列可归纳定义如下： 
当n=1时，perm(R)=(r)，其中r是集合R中唯一的元素；
当n]]></description><category></category></item><item><title><![CDATA[字符串的排列]]></title><link>https://blog.youkuaiyun.com/Harold_Finch/article/details/77744208</link><guid>https://blog.youkuaiyun.com/Harold_Finch/article/details/77744208</guid><author>Harold_Finch</author><pubDate>Thu, 31 Aug 2017 11:32:48 +0800</pubDate><description><![CDATA[题目：输入一个字符串，打印出该字符串中字符的所有排列。


例：输入字符串 abc
       输出：abc acb bac bca cab cba


思路：把一个字符串分为两部分，第一部分为其第一个字符，第二部分为后面所有字符。然后把第一个字符逐一和它后面的字符交换。递归思路。


#include
using namespace std;
#include

void ]]></description><category></category></item><item><title><![CDATA[左值与右值区别]]></title><link>https://blog.youkuaiyun.com/Harold_Finch/article/details/77620174</link><guid>https://blog.youkuaiyun.com/Harold_Finch/article/details/77620174</guid><author>Harold_Finch</author><pubDate>Sun, 27 Aug 2017 14:12:02 +0800</pubDate><description><![CDATA[定义：左值与右值的定义在于一个赋值等号，赋值等号左边成为左值，等号右边成为右值
左值（L-value）：表示存储在计算机内存的对象，可寻址，相当于地址值
右值（R-value）：代表的为真实值，可读，即数据值


因为左值是一个地址值，因此可以对左值进行赋值操作，而右值本身就是同一个数据值，就不存在对一个数据值就行赋值的操作。
例如：


int a,b;
a=5;//为合法的操]]></description><category></category></item><item><title><![CDATA[排序算法：归并排序]]></title><link>https://blog.youkuaiyun.com/Harold_Finch/article/details/77414345</link><guid>https://blog.youkuaiyun.com/Harold_Finch/article/details/77414345</guid><author>Harold_Finch</author><pubDate>Sat, 19 Aug 2017 20:25:30 +0800</pubDate><description><![CDATA[【介绍】
归并排序是一个分治算法。其将两个（或两个以上）有序表合并成一个新的有序表，即把待排序列分为若干有序子序列，再把有序子序列合并为整体有序序列。
【分析】
将待排序序列R[0...n-1]看成是n个长度为1的有序序列，将相邻的有序表成对归并，得到n/2个长度为2的有序表；将这些有序序列再次归并，得到n/4个长度为4的有序序列；
如此反复下去，最后得到一个长度为n的有序序列
具体要做]]></description><category></category></item><item><title><![CDATA[排序算法：快速排序]]></title><link>https://blog.youkuaiyun.com/Harold_Finch/article/details/77413269</link><guid>https://blog.youkuaiyun.com/Harold_Finch/article/details/77413269</guid><author>Harold_Finch</author><pubDate>Sat, 19 Aug 2017 16:49:05 +0800</pubDate><description><![CDATA[【介绍】
       通过一趟排序将待排序的数据分割成独立两部分，其中一部分的所有数据都比另外一部分所有数据小，然后再根据此方法对这两部分数据分别进行快速排序，整个排序过程可以递归进行，直到整个数据变得有序。
【分析】
       快速排序是找出一个元素为基准，然后对数组进行分区操作，使基准左边元素的值都不大于基准值，基准值右边的元素值都不小于基准值，如此作为基准的元素则调整到了排序后的]]></description><category></category></item><item><title><![CDATA[排序算法：冒泡排序]]></title><link>https://blog.youkuaiyun.com/Harold_Finch/article/details/77412856</link><guid>https://blog.youkuaiyun.com/Harold_Finch/article/details/77412856</guid><author>Harold_Finch</author><pubDate>Sat, 19 Aug 2017 15:12:49 +0800</pubDate><description><![CDATA[【介绍】
重复走访过要排序的数列，一次比较两个元素，如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换，也就是说该数列已经排序完成。
【分析】
1、比较相邻的元素，如果第一个比第二个大，就交换他们两个。
2、对每一对相邻元素做同样的工作，从开始第一对到结尾的最后一对。最后的元素会是最大的数。
3、针对所有元素重复以上步骤，除了最后一个。
4、持续每次对越来]]></description><category></category></item><item><title><![CDATA[排序算法：插入排序]]></title><link>https://blog.youkuaiyun.com/Harold_Finch/article/details/77368753</link><guid>https://blog.youkuaiyun.com/Harold_Finch/article/details/77368753</guid><author>Harold_Finch</author><pubDate>Fri, 18 Aug 2017 13:57:59 +0800</pubDate><description><![CDATA[【介绍】
每次从无序表中取出第一个元素，把它插入到有序表中合适的位置，是有序表仍然有序。
【分析】
第一趟比较前两个数，然后把第二个数按大小插入到有序表中；
第二趟把第三个数据与前两个数从前向后扫描，把第三个数按大下坡插入到有序表中；
一次下去，进行了（n-1）趟扫描以后就完成了整个排序过程
【代码】
#include
using namespace std;

void print]]></description><category></category></item><item><title><![CDATA[排序算法：选择排序]]></title><link>https://blog.youkuaiyun.com/Harold_Finch/article/details/77367533</link><guid>https://blog.youkuaiyun.com/Harold_Finch/article/details/77367533</guid><author>Harold_Finch</author><pubDate>Fri, 18 Aug 2017 12:24:40 +0800</pubDate><description><![CDATA[【介绍】
要排序的一组数，选出最小，或者最大的一个数与第1个位置的数交换；然后在剩下的数当中再找最小，或者最大的与第2个位置的数交换。以此类推，直到第n-1个元素与第n个元素比较为止。


【分析】
第一趟，从n个记录中找出关键码最小的记录与第一个记录交换；
第二趟，从第二个记录开始的n-1个记录中再选出关键码最小的记录与第二个记录交换；
以此类推。。。
第i趟，则从第i个记录开始]]></description><category></category></item><item><title><![CDATA[深入理解C++中的mutable关键字]]></title><link>https://blog.youkuaiyun.com/Harold_Finch/article/details/74725920</link><guid>https://blog.youkuaiyun.com/Harold_Finch/article/details/74725920</guid><author>Harold_Finch</author><pubDate>Fri, 07 Jul 2017 15:35:31 +0800</pubDate><description><![CDATA[mutalbe的中文意思是“可变的，易变的”，跟constant（既C++中的const）是反义词。

　　在C++中，mutable也是为了突破const的限制而设置的。被mutable修饰的变量，将永远处于可变的状态，即使在一个const函数中。

　　我们知道，如果类的成员函数不会改变对象的状态，那么这个成员函数一般会声明成const的。但是，有些时候，我们需要在const的函数里面]]></description><category></category></item><item><title><![CDATA[初始化类成员的两种方式]]></title><link>https://blog.youkuaiyun.com/Harold_Finch/article/details/74721987</link><guid>https://blog.youkuaiyun.com/Harold_Finch/article/details/74721987</guid><author>Harold_Finch</author><pubDate>Fri, 07 Jul 2017 15:23:47 +0800</pubDate><description><![CDATA[在初始化类成员试，有如下两种选择：
1、类构造函数的成员初始化列表
2、构造函数的函数体


以上两种方法的区别：
成员初始化列表使用初始化的方式来为数据成员指定初值，而构造函数的函数体是通过赋值的方式来给数据成员指定初值。即成员初始化列表实在数据成员定义同时赋初值，而构造函数的函数体是采用先定义后赋值的方式来做。


功能上区别：
1.初始化一个引用成员变量
2.初始化一个]]></description><category></category></item><item><title><![CDATA[inline内联函数]]></title><link>https://blog.youkuaiyun.com/Harold_Finch/article/details/74567161</link><guid>https://blog.youkuaiyun.com/Harold_Finch/article/details/74567161</guid><author>Harold_Finch</author><pubDate>Thu, 06 Jul 2017 16:43:29 +0800</pubDate><description><![CDATA[转自http://bbs.youkuaiyun.com/topics/310059268评论
介绍内联函数之前，有必要介绍一下预处理宏。内联函数的功能和预处理宏的功能相似。相信大家都用过预处理宏，我们会经常定义一些宏，如

#define TABLE_COMP(x) ((x)>0?(x):0) 
　 
就定义了一个宏。

　　为什么要使用宏呢？因为函数的调用必须要将程序执行的顺序转移到函数所存放]]></description><category></category></item><item><title><![CDATA[云计算]]></title><link>https://blog.youkuaiyun.com/Harold_Finch/article/details/73615076</link><guid>https://blog.youkuaiyun.com/Harold_Finch/article/details/73615076</guid><author>Harold_Finch</author><pubDate>Fri, 23 Jun 2017 11:33:54 +0800</pubDate><description><![CDATA[云计算的核心思想，将大量用网络连接的计算资源统一管理和调度，构成一个计算资源池向用户按需服务。


云计算是网格计算、分布式计算、并行计算、效用计算、网格存储、虚拟化技术、负载均衡等传统计算机技术和网络技术发展融合的产物。旨在通过把多个成本相对较低的计算实体整合成一个具有强大计算能力的完美系统，并借助Saas、PaaS、IaaS、MSP等先进的商业模式把这强大的计算能力分布到终端用户手中。]]></description><category></category></item><item><title><![CDATA[[C++]关于头文件中的防卫式声明(#ifndef...#pragma once)]]></title><link>https://blog.youkuaiyun.com/Harold_Finch/article/details/70254558</link><guid>https://blog.youkuaiyun.com/Harold_Finch/article/details/70254558</guid><author>Harold_Finch</author><pubDate>Thu, 20 Apr 2017 08:53:43 +0800</pubDate><description><![CDATA[转自http://www.cnblogs.com/xyq10612/p/5910933.html
[C++]关于头文件中的防卫式声明(#ifndef...#pragma once)




大家知道，我们写.h文件时，通常会加上防卫式声明，有以下两种方式：
1. 宏定义



?




1
2
3
4



#ifndef _FILENAME_
#]]></description><category></category></item><item><title><![CDATA[欢迎使用优快云-markdown编辑器]]></title><link>https://blog.youkuaiyun.com/Harold_Finch/article/details/65444589</link><guid>https://blog.youkuaiyun.com/Harold_Finch/article/details/65444589</guid><author>Harold_Finch</author><pubDate>Thu, 23 Mar 2017 15:47:46 +0800</pubDate><description><![CDATA[欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来，用它写博客，将会带来全新的体验哦：
Markdown和扩展Markdown简洁的语法
代码块高亮
图片链接和图片上传
LaTex数学公式
UML序列图和流程图
离线写博客
导入导出Markdown文件
丰富的快捷键
快捷键
加粗    Ctrl + B 
斜体    Ctrl + I 
引用    Ctrl]]></description><category></category></item><item><title><![CDATA[C++ 共用体：union]]></title><link>https://blog.youkuaiyun.com/Harold_Finch/article/details/65444443</link><guid>https://blog.youkuaiyun.com/Harold_Finch/article/details/65444443</guid><author>Harold_Finch</author><pubDate>Thu, 23 Mar 2017 15:39:17 +0800</pubDate><description><![CDATA[union主要是将各种类型的数据存放在一段固定的存储器中，存储器的大小由union中需要最大存储器的数据类型决定。
如：
union student
{
char ***;
int age;
long number;
double score;
};
其中long、double需要16个字节，而char只需要1个字节，因此该共用体占用16个字节，union的关键是不同的数据类型共]]></description><category></category></item><item><title><![CDATA[操作系统必知必会（进程）]]></title><link>https://blog.youkuaiyun.com/Harold_Finch/article/details/65441539</link><guid>https://blog.youkuaiyun.com/Harold_Finch/article/details/65441539</guid><author>Harold_Finch</author><pubDate>Thu, 23 Mar 2017 11:38:42 +0800</pubDate><description><![CDATA[进程代表一个运行中的程序，是资源分配与调度的基本单位。进程有三大特性：
1、独立性：独立的资源，私有的地址空间，进程间互不影响。
2、动态性：进程具有生命周期。
3、并发性：多进程可以在单核CPU上并发运行。





操作系统的设计，因此可以归结为三点：
（1）以多进程形式，允许多个任务同时运行；
（2）以多线程形式，允许单个任务分成不同的部分运行；
（3）提供协调机制，]]></description><category></category></item></channel></rss>