![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 54
blue_jjw
这个作者很懒,什么都没留下…
展开
-
ConcurrentHashMap之实现细节
转自:http://www.iteye.com/topic/344876ConcurrentHashMap是Java 5中支持高并发、高吞吐量的线程安全HashMap实现。在这之前我对ConcurrentHashMap只有一些肤浅的理解,仅知道它采用了多个锁,大概也足够了。但是在经过一次惨痛的面试经历之后,我觉得必须深入研究它的实现。面试中被问到读是否要加锁,因为读写会发生冲突,我说必转载 2013-04-07 18:30:56 · 838 阅读 · 0 评论 -
程序员技术练级攻略
转自:http://coolshell.cn/articles/4990.html月光博客6月12日发表了《写给新手程序员的一封信》,翻译自《An open letter to those who want to start programming》,我的朋友(他在本站的id是Mailper)告诉我,他希望在酷壳上看到一篇更具操作性的文章。因为他也是喜欢编程和技术的家伙,于转载 2013-04-30 21:02:25 · 749 阅读 · 0 评论 -
欧几里得算法求最大公因子——《数据结构与算法分析C++描述》
两个整数的最大公因子(gcd)是同时整除二者的最大整数。计算gcd(M,N),假设M>=N,如果不相等,可在程序中将它们互相交换long gcd(long m, long n){ while(n != 0) { long rem = m%n; m = n; n = rem; } return m;}算法分析:算法的运行时间是多少?看不出余数的值按原创 2013-05-04 22:07:21 · 1450 阅读 · 0 评论 -
高效的幂运算——《数据结构与算法分析C++描述》
计算X的N次方,最明显的算法是使用N-1次乘法自乘,但是使用递归算法更好,分奇偶分别处理。long pow(long x, long n){ if( n ==0 ) return 1; if( n ==1 ) return x; if(isEven(n)) return pow(x*x, n/2); else return pow(x*x, n/2)*x;}原创 2013-05-04 22:23:54 · 972 阅读 · 0 评论 -
表、栈和队列——《数据结构与算法分析C++描述》
1.抽象数据类型(ADT)抽象数据类型(abstract datatype, ADT)是带有一组操作的一些对象的集合。诸如表、集合、图以及与它们各自的操作一起形成的这些对象都可以看做是抽象数据类型。对于集合ADT,可以有像加(add)、删除(remove)、大小(size)以及包含(contains)这样一些操作。2.表ADT我们将处理形如A0,A1,A2,…,AN-1的表,表的大原创 2013-05-06 11:29:21 · 1221 阅读 · 0 评论 -
2013年阿里巴巴暑期实习招聘笔试题目及部分答案——5月5日
转自:http://50vip.com/blog.php?i=223网上各种标为2013年,实际上都是2012年或者更早的,下面的才是真正的2013年5月5日考试的卷子。答题说明:1.答题时间90分钟,请注意把握时间;2.试题分为四个部分:单项选择题(10题,20分)、不定向选择题(4题,20分)、填空问答(5题,40分)、综合体(1题,20转载 2013-05-07 00:00:31 · 1008 阅读 · 0 评论 -
树——《数据结构与算法分析C++描述》
1. 预备知识一棵树是一些结点的集合。集合可以使空集;若不是空集,则树由称作根(root)的结点r以及零个或多个非空的子树组成,子树的根都被来自根r的一条有向的边所连接。每棵子树的根叫做根r的儿子,而r是每个子树根的父亲。没有儿子的结点称为叶结点,上图的叶结点是BCHIPQKLMN。有相同父亲的结点称为兄弟。从结点n1到nk的路径定义为结点n1,n2,…,n原创 2013-05-07 22:08:01 · 1055 阅读 · 0 评论 -
海量数据存储
如何处理海量数据在实际的工作环境下,许多人会遇到海量数据这个复杂而艰巨的问题,它的主要难点有以下几个方面:一、数据量过大,数据中什么情况都可能存在。如果说有10条数据,那么大不了每条去逐一检查,人为处理,如果有上百条数据,也可以考虑,如果数据上到千万级别,甚至过亿,那不是手工能解决的了,必须通过工具或者程序进行处理,尤其海量的数据中,什么情况都可能存在,例如,数据中某处转载 2013-05-15 09:41:21 · 1200 阅读 · 0 评论 -
找出N个整数中最大的K个数
如题:给出N个整数(N可能很大,以致无法装入内存),找出前K个最大的整数【解法一】当学生们信笔写下 float array [10000000],他们往往没有想到这个数据结构要如何在电脑上实现,是从当前程序的栈(Stack)中分配,还是堆(Heap),还是电脑的内存也许放不下这么大的东西?我们先假设元素的数量不大,例如在几千个左右,在这种情况下,那我们就排序一下吧。转载 2013-06-03 22:33:51 · 1171 阅读 · 0 评论 -
字符串匹配的KMP算法
转自:http://blog.sae.sina.com.cn/archives/307字符串匹配是计算机的基本任务之一。举例来说,有一个字符串”BBC ABCDAB ABCDABCDABDE”,我想知道,里面是否包含另一个字符串”ABCDABD”?许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头转载 2013-09-01 17:04:31 · 706 阅读 · 0 评论 -
趣题:公司应该雇用多少员工?
转自:http://www.matrix67.com/blog/archives/4429某大公司有这么一个规定:只要有一个员工过生日,当天所有员工全部放假一天。但在其余时候,所有员工都没有假期,必须正常上班。这个公司需要雇用多少员工,才能让公司一年内所有员工的总工作时间期望值最大? 假设一年有 365 天,每个员工的生日都概率均等地分布在这 365 天里。转载 2013-09-03 16:48:43 · 1184 阅读 · 0 评论 -
2013 编程之美挑战赛 相似字符串
时间限制: 4000ms 内存限制: 256MB描述对于两个长度相等的字符串,我们定义其距离为对应位置不同的字符数量,同时我们认为距离越近的字符串越相似。例如,“0123”和“0000”的距离为 3,“0123”和“0213”的距离则为 2,所以与“0000”相比,“0213”和“0123”最相似。现在给定两个字符串 S1 和 S2,其中 S2 的长度不大于 S1。请在 S1 中寻找一原创 2013-04-13 15:50:27 · 897 阅读 · 0 评论 -
2013 编程之美挑战赛 竞价
时间限制: 1000ms 内存限制: 256MB描述Alice和Bob都要向同一个商人购买钻石。商人手中有 N 颗钻石,他会将它们一颗颗地卖给他们,Alice和Bob通过竞价的方式来决定钻石的归属。具体的过程如下:商人首先指定其中一个人开始报价,之后两人轮流报价,要求是一定要比对方报的价格更高。任何时候,如果一个人不愿出价或者出不起价钱时,可以宣布弃权,则对手以最后一次报的原创 2013-04-13 15:49:32 · 932 阅读 · 0 评论 -
ConcurrentHashMap
转自:http://blog.sina.com.cn/s/blog_605f5b4f0100qsij.html曾经研究过jkd1.5新特性,其中ConcurrentHashMap就是其中之一,其特点:效率比Hashtable高,并发性比hashmap好。结合了两者的特点。 集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时转载 2013-04-07 18:35:53 · 815 阅读 · 0 评论 -
传话游戏
编程之美2013全国挑战赛资格赛第一题题目描述:时间限制: 1000ms 内存限制: 256MB描述Alice和Bob还有其他几位好朋友在一起玩传话游戏。这个游戏是这样进行的:首先,所有游戏者按顺序站成一排,Alice站第一位,Bob站最后一位。然后,Alice想一句话悄悄告诉第二位游戏者,第二位游戏者又悄悄地告诉第三位,第三位又告诉第四位……以此类原创 2013-04-07 21:55:36 · 837 阅读 · 0 评论 -
打印从0到1000的所有素数
庞果网题目:http://hero.pongo.cn/Question/Details?ID=15&ExamID=15题目详情打印从0到1000的所有素数分析:使用“筛法”,首先去除0和1,从2开始从后面的数中筛选出非素数代码如下:import java.util.ArrayList;import java.util.HashSet原创 2013-03-25 19:50:04 · 1772 阅读 · 0 评论 -
2013 编程之美挑战赛 长方形
转自:http://www.cnblogs.com/wuminye/archive/2013/04/07/3006425.html【题目描述】在 N 条水平线与 M 条竖直线构成的网格中,放 K 枚石子,每个石子都只能放在网格的交叉点上。问在最优的摆放方式下,最多能找到多少四边平行于坐标轴的长方形,它的四个角上都恰好放着一枚石子。【输入】输入文件包含多组测试数据。第一行转载 2013-04-08 21:27:36 · 1186 阅读 · 0 评论 -
字符串循环右移
庞果网题目:http://hero.pongo.cn/Question/Details?ID=17&ExamID=17题目详情定义字符串循环右移操作:把一个长度为N的字符串内的元素循环右移K位,要求时间复杂度为O(N),空间复杂度为O(1),请编写代码实现。输入样例:N=8的字符串abcdefgh;输出样例:K=4,即字符元素右移4位,得到efgha原创 2013-03-25 19:43:20 · 1047 阅读 · 0 评论 -
poj题目推荐+50题说明
OJ上的一些水题(可用来练手和增加自信)(poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094)初期:一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法.转载 2013-04-13 16:07:03 · 986 阅读 · 0 评论 -
2013 编程之美挑战赛 仙剑5前传之璇光殿
时间限制: 4000ms 内存限制: 256MB描述仙剑是一款经典的RPG游戏,最近又推出了仙剑5前传。Alice身为忠实的仙剑粉丝,当然是在第一时间就开始玩了。迷宫以及各类小游戏是仙剑系列的一大传统,这次也不例外。而且还增加了称号系统,玩家如果在满足一定条件下通过迷宫或是完成小游戏,都可以获得相应的称号奖励。Alice虽然智商也不算太低,顺利的完成游戏还是没什么问题的,但原创 2013-04-13 15:50:53 · 1342 阅读 · 0 评论 -
2013 编程之美挑战赛 管道系统
时间限制: 5000ms 内存限制: 256MB描述你正在参与一项输油管道的项目,此项目的目标是架设一组输油管道系统,使得从源头到目的地输送的石油流量最大。如果直接从源头架设管道到目的地,一旦管道有损坏,将无法输送石油。为了增强管道系统抵抗破坏的能力,你决定设置 N - 2 个中间节点,从而把管道分散开来。源头和目的地可以视为特殊的节点,他们的编号分别为 1 和 N原创 2013-04-14 15:53:36 · 923 阅读 · 0 评论 -
2013 编程之美挑战赛 仙剑5前传之软星包子
时间限制: 1000ms 内存限制: 256MB描述仙剑是一款经典的RPG游戏,最近又推出了仙剑5前传。Alice身为忠实的仙剑粉丝,当然是在第一时间就开始玩了。迷宫以及各类小游戏是仙剑系列的一大传统,这次也不例外。而且还增加了称号系统,玩家如果在满足一定条件下通过迷宫或是完成小游戏,都可以获得相应的称号奖励。Alice虽然智商也不算太低,顺利的完成游戏还是没什么问题的,但原创 2013-04-14 15:54:18 · 1309 阅读 · 0 评论 -
2013 编程之美挑战赛 集会
时间限制: 2000ms 内存限制: 256MB描述在一条河的一侧,分布着 N 个村庄。这些村庄平日里需要一些贸易往来,然而商人们来回走遍每一座村庄是非常辛苦的,于是他们决定每个月都在河边举行一次集会,大家都来集会上购买需要的物品。然而在集会地点的选择上,大家却有分歧,因为谁都不愿意集会的地点离自己村庄非常远。经过一番激烈的讨论之后,大家决定要将集会地点挑选在这样一个位置:原创 2013-04-14 15:55:36 · 919 阅读 · 0 评论 -
各种优化方法总结比较(sgd/momentum/Nesterov/adagrad/adadelta)
转自:点击打开链接前言这里讨论的优化问题指的是,给定目标函数f(x),我们需要找到一组参数x,使得f(x)的值最小。本文以下内容假设读者已经了解机器学习基本知识,和梯度下降的原理。SGDSGD指stochastic gradient descent,即随机梯度下降。是梯度下降的batch版本。对于训练数据集,我们首先将其分成n个batch,每个bat转载 2016-02-10 21:11:05 · 34778 阅读 · 4 评论