今天百无聊赖之时, 漫心看到14年的华为校招机试题目, 一共三道, 前两道皆是平平, 第三道却柳暗花明, 让人眼前一亮。 咋一看, 饶有趣味, 看似平淡无奇, 然而却玄机颇深(对我这种弱渣而言)。(不过对于ACMer, 好像应该用基础算法, 就能解决!)(然而我也只会基础的算法!!忏愧的紧!!!)。...
分类:
其他好文 时间:
2015-05-22 22:23:22
阅读次数:
185
在国际象棋中,皇后是最强大的一枚棋子,可以吃掉与其在同一行、列和斜线的敌方棋子。比中国象棋里的车强几百倍,比她那没用的老公更是强的飞起(国王只能前后左右斜线走一格)。上图右边高大的棋子即为皇后。 八皇后问题是这样一个问题:将八个皇后摆在一张8*8的国际象棋棋盘上,使每个皇后都无法吃掉别的皇后,...
分类:
编程语言 时间:
2015-05-22 11:24:34
阅读次数:
185
尽管排序算法还有很多没有说,但因为这篇文章是已经现成有的,就先上这个,回头再把排序补一下。 好的开始~BigMoyan有一个好基友叫zou先生,zou先生除了是BigMoyan在学校的社团老大外,还是一家专门为夜总会提供钢管的公司的区域经理。最近,zou经理发现这样一个事情,夜总会需要各种长度...
分类:
编程语言 时间:
2015-05-22 11:24:19
阅读次数:
177
BigMoyan准备做一个连续的文章,以算法导论为蓝本,尽量用亲切生动的语言把一些经典的算法讲清楚,欢迎来捧场~ 本人并非计算机专业学生,文章有疏漏错误之处,还望专家们指正,在此谢过---------------------------------------------------------.....
分类:
编程语言 时间:
2015-05-22 11:20:29
阅读次数:
123
核心思想:以起始原点为中心,想外层扩展,知道扩展到重点为止。设到A点的最短路径上,A点前驱节点为B,则该路径包含到达节点B的最短路径。S集合代表已经探索过的节点,U集合表示未探索过的节点。时间复杂度为O(n^2)具体过程见下图和表C++代码如下: 1 #include 2 #define MAX.....
分类:
编程语言 时间:
2015-05-21 01:19:14
阅读次数:
335
二分查找利用分治法,逐渐苏小查找范围,适用于有序数组。时间复杂度是O(log2N).PS:二分查找算法的判定过程实际上可以借助一棵平衡二叉树来描述,中间位置的关键字可以看成二叉树的根节点。C++代码如下: 1 #include 2 using namespace std; 3 template .....
分类:
编程语言 时间:
2015-05-20 00:24:06
阅读次数:
130
前面介绍的几种查找的算法都是基于数据有序的基础上进行的。但是在实际的应用中,很多数据集的可能有竟然的数据量,面对这些海量的数据,要保证记录全部按照当中的某个关键字有序,其时间代价是非常昂贵的,所以这种数据通常都是按先后顺序存储的。那么如何能够快速的查找到需要的数据呢?办法就是--索引。索引就是把一个...
分类:
编程语言 时间:
2015-05-04 21:40:46
阅读次数:
169
算法描述先来看一个实际问题:我们在一本英汉字典中寻找单词“worst”,我们决不会仿照对半查找(或Fibonacci查找)那样,先查找字典中间的元素,然后查找字典四分之三处的元素等等. 事实上,我们是在所期望的地址(在字典的很靠后的地方)附近开始查找的,我们称这样的查找为插值查找。可见,插值查找不同...
分类:
编程语言 时间:
2015-05-04 15:21:05
阅读次数:
131
折半查找又称为二分查找。这种查找方法要求查找表的数据是线性结构保存,并且还要求查找表中的数据是按关键字由小到大有序排列。折半查找(二分查找)是一种简单而又高效的查找算法,其查找长度至多为㏒2n+1(判定树的深度),平均查找长度为㏒2(n+1)-1,效率比顺序查找要高,但折半查找只能适用于顺序存储有序...
分类:
编程语言 时间:
2015-05-04 13:20:21
阅读次数:
152
喵~不知不觉到了CUDA系列学习第五讲,前几讲中我们主要介绍了基础GPU中的软硬件结构,内存管理,task类型等;这一讲中我们将介绍3个基础的GPU算法:reduce,scan,histogram,它们在并行算法中非常常用,我们在本文中分别就其功能用处,串行与并行实现进行阐述。1. Task complexitytask complexity包括step complexity(可以并行成几个操作)...
分类:
编程语言 时间:
2015-05-01 16:11:12
阅读次数:
263