- 博客(21)
- 问答 (1)
- 收藏
- 关注
原创 Introduce to algorithm--------pseudo code to C/C++ code (chapter 24)
单源最短路径最短路径问题也是有向图算法领域中的一个经典问题。从某一点到某一点有多条路径可选,如何选择 其中最‘ 短 ’的一条即为最短路径问题。其中‘短‘的定义很广泛:如果是交通问题,‘短’也 可以被描述为到达目的地耗费的时间;如果是运输问题,‘短’有可以被定义为运输耗费的资金…最短路径有几个变体,中最为熟知的就是单源最短路径。‘单源’即是从单个源节点出发。通用算法基本点算法导论中介绍说,单源节点
2015-11-24 21:53:21
447
原创 Introduce to algorithm--------pseudo code to C/C++ code (chapter 23)
最小生成树图算法(连通无向图)中有一类经典问题,叫做最小生成树(Minimal Spanning Tree)。简单 的来说,最小生成树问题是这样一种问题 : 在连接所有图顶点的情况下,求使得所选边的权重和最 小的方案。算法导论中主要介绍了两种经典的算法:Kruskal算法Prim算法两种算法都采用贪心算法来解决问题。书中描述最小生成树的通用贪心解决方案 都 遵循一个循环不变式的边集合A:
2015-11-15 11:36:51
484
原创 CentOS 7上 启动虚拟机报错:could not open /dev/vmmon
CentOS上 启动虚拟机报错:could not open dev/vmmon这些天在CentOS上安装虚拟机,结果启动虚拟机的时候提示could not open /dev/ vmmon:no such file or directory(vmmon模块未加载)。于是各种搜索,有root下重新安装的,有是因为gcc版本过低的,也有内核升级后出错的。其中有一个成功率较高的方法;大概的意思就是重新m
2015-09-28 14:19:38
5264
3
原创 Introduce to algorithm--------pseudo code to C/C++ code (chapter 18)
B树 B树是为磁盘或其他直接存取的辅助存储设备而设计的一种平衡搜索树。B树类似于红黑树,但他们在降低磁盘I/O操作数方面更好一些。许多数据库系统使用B树或者B树的变种来存储信息。 B树与红黑树的不同之处B树的结点可以有很多孩子,从数个到数千个。 B树以一种自然的方式推广了二叉搜索树。二叉搜索树的每个结点构成一个数据范围,每个节点的左孩子小于等于该节点本身,右孩子大于等于该节
2015-08-20 15:24:55
486
原创 Introduce to algorithm--------pseudo code to C/C++ code (chapter 16)
贪心算法 贪心算法(greedy algorithm)就是这样的算法,它在每一步都做出在当时看起来最佳的选择。也就是说,它总是做出局部最优的选择,寄希望这样的选择能导致全局最优解。但需要注意的是: 贪心算法并不保证得到最优解。当将贪心算法应用于特殊的一个问题时,需要特别注意贪心性质的正确性:它是否能保证得到最优解。 所有的算法其实并不是书上描述的那样简单,需要对问题的理解、算法的分析、
2015-08-12 16:31:26
409
原创 Introduce to algorithm--------pseudo code to C/C++ code(chapter 15)
动态规划就像算法导论中说的那样,动态规划与分治算法相似,是通过组合子问题的方法求解原问题。分治将原问题划分为互不相交的子问题,递归求解,然后再将子问题组合起来,求出原问题的解。而动态规划用于子问题重叠的情况,不同的问题会有公共的子问题,在这种情况下,可以重用第一次求解的公共子问题的解,省去很多不必要的计算。动态规划常用来求解最优化问题。 我们通常按如下4个来设计一个动态规划算法:
2015-08-03 17:05:18
435
原创 Introduce to algorithm--------pseudo code to C/C++ code(chapter 13)
红黑树虽然二叉树在理想情况下的锁定胡常见操作的时间复杂度均为lg(n), 但在最坏情况下,二叉树的平衡性将被打破,导致操作的时间复杂度上升。由于在实际应用中不能保证二叉树的平衡性, 想来红黑树的出现也不足为奇了。红黑树在一定程度上确保了树结构的平衡性,但也是因此,红黑树的构建和相关的操作相对于二叉树而言要复杂的多。以下是红黑树性质在算法导论上的描述: 树中每个结点包含5个属性:color、key
2015-07-31 15:57:51
565
原创 Introduce to algorithm--------pseudo code to C/C++ code(chapter 12)
二叉搜索树以下摘自算法导论:"顾名思义,一颗二叉搜索树是以二叉树来组织的。""二叉搜索树中的关键字总是以满足二叉搜索树性质来存储的: 设x是二叉树中的一个结点。如果y是左子树x中的一个结点,那么 y.key ≤ x.key。如果y是x右子树中的一个结点,那么y.key ≥ x.key."“二叉搜索树上的基本操作所花费的时间与这棵树的高度成正比。对有n个节点的 完全二叉树 来说,这些操
2015-07-13 17:27:07
393
原创 Introduce to algorithm-----pseudo code to C/C++ code (chapter 11)
散列表 散列表是实现字典操作的一种有效数据结构。散列查找在 实际的应用中性能很出色。 散列,即将数据按照某种方法分散排列。而将数据关键字映射到储存空间的这种方法称为散列函数(hash function)。在散列过程中,由于储存空间的限制(分配给散列表空间的限制),经常会出现数据散列的冲突 (collission),即两个或多个数据被放置的位置相同。而开放地寻址法和链接寻址法则是解
2015-07-04 15:06:28
492
原创 浅谈----RAII资源获得即初始化(Resource Acquisition Is Initialization)
今天看到RAII(Resource Acquisition Is Initialization,即资源获得即初始化)的时候,脑子里竟然想不出它的意思。其实这个词自己应该是很熟悉了的,在Exceptional C++和More exceptional C++这两本书中都有提到过RAII的概念,并且Herb Sutter也给出了详尽的解释和应用。不过从今天自己的反应看来,我只是熟悉了RAII这
2015-06-12 17:35:20
2373
1
原创 Introduce to algorithm--------pseudo code to C/C++ code(Chapter 8)
计数排序:顾名思义,基数排序的中心思想是“计数”。该排序算法需要额外的两组array分别来存储计数信息和输出信息。算法概述如下: 算法计算每个元素出现的次数,将次数按元素大小顺序保存。然后将每个出现次数更改为包含自身次数以前的所有次数和。所以若元素5的累计次数为8,则元素5的最后一个排序位置(可能有多个元素5)应该在数组中下标为7的位置处。(0-based inde
2015-05-31 12:40:51
914
原创 Introduce to algorithm--------pseudo code to C/C++ code(Chapter 7)
快速排序(简称快排):为什么叫它快速排序呢,在我自己的理解里,因为快速排序的每一步排序过程都使得:有某个位置i, 经一步排序后,数组i位置上的值为完整排序后的数值, 即排序过程的每一步都较之整个排序过程快一步获得一个已正确排序的数值,所以叫它 ‘快速’ 排序。 假设快速排序由n步的process过程组成,对于数组A[size],快排每次调用process后,有某个值i, 使得A[i
2015-05-15 21:22:19
463
原创 Introduce to algorithm--------pseudo code to C/C++ code(Chapter 6)
堆排序:如果只是从字面意思出发,大家很难理解堆排序的原理,但如果说的详细一点,‘堆排序’中的‘堆’实际上指的是二叉堆,那么,也许堆排序不那么难记了。简单的说堆排序是以二叉堆为基础,多次对数组build二叉堆,从而进行排序的一种algorithm。先给出build二叉堆的code://size if the size of arraytemplate void max_heapi
2015-05-09 14:45:13
501
原创 Introduce to Algorithm--------pseudo code to C/C++ code(Chapter 4)
Maximum sub-array question:For question details, see Introduce to algorithm-----Chapter 4.Because This blog only keeps codes, so here i just give the real code in C/C++, no more summaries :tem
2015-05-05 20:19:10
451
原创 Introduce to algorithm-------pseudo code to C/C++ code(Chapter 2)
Insertion sort:The basic idea of insertion sort is to insert one into a sorted sequence. So the step is very simple, insert the next element into the former sequence which is already sorted in the
2015-04-26 11:26:14
469
转载 (Visual Studio)Part 4: Setting up Code for the Debugger
In the fourth part of the series on debugging in Visual Studio, we will discuss how to set up your code for the debugger.Debug breakA direct call to a debug break can be used to stop the execu
2015-01-05 16:08:50
495
转载 (Visual Studio) Part 3: Using Breakpoints Effectively
If you go to the Breakpoints window you will see that there is are columns displayed called 'Condition' and 'Hit Counts'. These can be very powerful mechanisms for debugging tricky code. There are
2015-01-05 16:03:03
425
转载 (Visual Studio)Part 2: Setting up the IDESetting up the IDE for the debugger
In this article series, we discuss the concepts of debugging with Visual Studio 2005/2008. Part one covered general debugging concepts; part two will explain how to configure the Visual Studio I
2015-01-05 15:34:44
497
转载 (Visual Studio)Part 1: Debugging Concepts
Debugging with Visual Studio 2005/2008, Part 1: Debugging Conceptsby Patrick MancierWhenever you write C++ programs, inevitably you're going to have to debug the program. This series of arti
2015-01-05 15:28:20
649
转载 Why am I getting LNK2019 unresolved external for my inline function?
More than once, I've seen somebody confused by how inline functions work.I have implemented a few inline functions in one of my cpp files, and I want to use it from other cpp files, so I decla
2014-12-27 19:05:47
463
转载 (Visual Studio)Solve problems like "MSVCR110.dll is missing from your compute"
When someone others run an executive which I generated with VS 2012 in their PCs, they occurred the problem "MSVCR110.dll is missing from your compute"; It troubles me a lot. Today, I find a
2014-12-25 15:35:44
708
空空如也
写出正则表达式
2015-09-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人