E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
***编程珠玑***
使用位图做整型ID去重的一种方法
《
编程珠玑
》中提到一个位图算法的例子: 输入:一个文件,里面大约有1千万行数据,每个数据是7位整数,同时每个数是唯一的,即不允许有2个数相同,这些整数不与其他任何数产生关联。
harry
·
2012-01-29 11:00
方法
撒列实现关键字过滤,速度可快了
直到我看了《
编程珠玑
(第二版)》中的这么一段文字:“假定我们可以在执行搜索之前对文本内容进行预处理,那么我们可以建立一个撒列表(或者搜索树),为文档中的每个不同的单词建立索引,并为每个单
chentaihan
·
2012-01-20 23:00
数据库
String
搜索引擎
测试
null
Class
撒列实现关键字过滤,速度可快了
直到我看了《
编程珠玑
(第二版)》中的这么一段文字:“假定我们可以在执行搜索之前对文本内容进行预处理,那么我们可以建立一个撒列表(或者搜索树),为文档中的每个不同的单词建立索引,并为每个单
不断的谦逊,不断的努力
·
2012-01-20 17:00
等快递无聊--旋转字符串
等快递无聊--旋转字符串真是个无语的周末,昨天下午等了几个小时的快递,买了两本书《代码大全》和《
编程珠玑
》,还有别人的衣服,今天一大早又跑到公司来等快递,又是别人的衣服,还没有到呢,做专业的代购真是无语
不断的谦逊,不断的努力
·
2012-01-08 11:00
求序列的最大子序列
看《
编程珠玑
》一书,讲解求序列的最大子序列。
sumoyu
·
2012-01-07 21:00
编程
算法
n2
取一个集合的前n个最大或最小值
《
编程珠玑
》第十四章的一个问题是:在具有10亿个数值的文件中找出最大的100万个数组。 使用堆解决这个问题的思路1.取10亿个数值中的最初的100万个,放到一个堆中,初始化这个堆为小顶堆。
sumoyu
·
2011-12-29 17:00
HDOJ 1403:Longest Common Substring 后缀数组的用处
以前在《
编程珠玑
》上看过后缀数组的作用,不过那道题的是针对单个字符串求最大重复连续子串的,而这道题是要求两个字符串的最长公共连续子串。一段时间内并不能把书上的那个解法应用到这道题上来。
bruce128
·
2011-12-22 16:00
编程
struct
url
System
程序员编程艺术第二十五章:Jon Bentley:90%无法正确实现二分查找
也许很多人都早已听说过这句话,但我还是想引用《
编程珠玑
》上的如下几段文字: “二分查找可以解决(预排序数组的查找)问题:只要数组中包含T(即要查找的值),那么通过不断缩小包含T的范围,最终就可以找到它。
July_
·
2011-12-21 19:00
程序员编程艺术第二十五章:Jon Bentley:90%无法正确实现二分查找
也许很多人都早已听说过这句话,但我还是想引用《
编程珠玑
》上的如下几段文字: “二分查找可以解决(预排序数组的查找)问题:只要数组中包含T(即要查找的值),那么通过不断缩小包含T的范围,最终就可以找到它。
v_JULY_v
·
2011-12-21 19:00
编程
算法
测试
Blog
文档
chm
程序员编程艺术第二十五章:Jon Bentley:90%无法正确实现二分查找
也许很多人都早已听说过这句话,但我还是想引用《
编程珠玑
》上的如下几段文字:“二分查找可以解决(预排序数组的查找)问题:只要数组中包含T(即要查找的值),那么通过不断缩小包含T的范围,最终就可以找到它。
izuoyan
·
2011-12-21 19:00
二分查找
编程珠玑
3.7.6
以下内容转自http://www.haogongju.net/art/994660《
编程珠玑
》上提到当要输入的数据很多,且没有规律时,可以考虑编写一个格式信函发生器(formlettergenerator
buptdtt
·
2011-12-12 21:27
编程
职场
休闲
字母
banner
《
编程珠玑
》习题3.7.3
题目:编写处理一下日期问题的函数:给定两个日期,计算两者之间的天数;给定一个日期,返回值为周几;给定月和年,使用字符数组生成该月的日历。以下内容转自http://www.netmediac.com/article/3463.html「分析」1.给定两个日子,计算两个日子之间的天数解决思路:①计算该日子是该年当中的第几天;②闰年的处理;③两个日子的年份之间经过几个闰年。2. 给定某个日子,返回它在一
buptdtt
·
2011-12-12 16:33
编程
职场
日历
休闲
海量数据处理面试题
可以用
编程珠玑
里的位图来处理,由于内存只有600M,刚好可以将数据分作正,负和0来处理,这个范围是两个2^31,那就是一次处理位图占用512M的内存。
·
2011-12-09 22:00
海量数据
编程珠玑
总结
column1:bitvectoroperation:#defineBITSPERWORD32 #defineSHIFT5 #defineMASK0x1F #defineN10000000 inta[1+N/BITSPERWORD];voidset(inti){a[i>>SHIFT]|=(1>SHIFT]&=~(1>SHIFT]&(1>SHIFT]&(1voidrotate_rcur(T*a,in
fatshaw
·
2011-11-28 20:00
数据结构
编程
算法
Random
permutation
Numbers
IT好书好文章
《
编程珠玑
》。这本书讲了作者亲身经历的一些编程问题,通过这些问题,来讲述编程的时候具体应该怎么一步步来做,每一步应该注意什么。读这本书不仅需要比较深的算法
mazheng1989
·
2011-11-27 23:00
读《
编程珠玑
》笔记
《
编程珠玑
》是一本很好的,经典的程序设计书。这两天开始读,有种“相见恨晚“的感觉。书中通过讲述作者自己的亲身体会来说明程序设计的艺术。很有感染力。 第一章 讲述了一个电话号码排序的故事。
mazheng1989
·
2011-11-22 11:00
阅读者(十七):
编程珠玑
,字字珠玑
最近,我终于有了一个明确的答案,在这些算法相关的书籍中,最让我爱不释手的是《
编程珠玑
》这本薄薄的小册
丁雪丰
·
2011-11-21 00:00
阅读者(十七):
编程珠玑
,字字珠玑
最近,我终于有了一个明确的答案,在这些算法相关的书籍中,最让我爱不释手的是《
编程珠玑
》这本薄薄的小册
丁雪丰
·
2011-11-21 00:00
部分面试题解题思路
解题笔记(2)——部分面试题解题思路分类: 解题笔记2011-07-1115:30 699人阅读 评论(4) 收藏 举报这几天在网上看到一篇关于算法面试题的博客,归纳的很好,有不少经典的题目,大部分来自《
编程珠玑
zhongjiekangping
·
2011-11-17 22:00
编程
算法
面试
null
Random
扩展
解题笔记
编程珠玑
第一章补充
2、求出2.5亿个整数中不重复的数字,注意内存无法存下2.5亿的数字。(1)说明你的思路(2)写出你的算法,可以用语言实现或者用伪代码表示 个人提示:位图法1、这里用到两个位图,先填充第一个位图a。当发现一个数字被填充过之后,则用这个数字填充b。很明显,b中记录的是重复出现过的数字。2、当扫描完一次之后。再扫描b位图。只要出现在b位图中的数,就拿去清除a位图中的位。最后a中的数字保证是只出现一次的
ju136
·
2011-11-16 22:00
编程珠玑
第8章-课后习题10题补充
按照原题的意思是在题目上进行扩展。本来是要找一个连续子数组,其和最大。那么现在习题的要求是找到这么一个连续子数组,其和的绝对值最接近0。O(n^3)或O(^2)的实现都很好处理。O(n^3)到O(n^2)的差别在于可以一次性求出sum(i~~j)的值。这个可以想一下的。如下例intsum[n];sum[0]=a[0];for(inti=1;i#include#include#defineabs(x
ju136
·
2011-11-16 12:10
编程珠玑
编程珠玑
第8章-课后习题10题补充
按照原题的意思是在题目上进行扩展。本来是要找一个连续子数组,其和最大。那么现在习题的要求是找到这么一个连续子数组,其和的绝对值最接近0。O(n^3)或O(^2)的实现都很好处理。O(n^3)到O(n^2)的差别在于可以一次性求出sum(i~~j)的值。这个可以想一下的。如下例intsum[n]; sum[0]=a[0]; for(inti=1;i #include #include #defin
ju136
·
2011-11-16 12:00
面试常见题目之海量数据排序(
编程珠玑
总结一)
编程珠玑
是很经典的算法讨论书籍,想进大公司的朋友还是要好好啃啃的,思路可谓经典,引入位向量概念。比如常见与国内某社交网站(自然很山寨,我们大学时常用)的面试题目。
mznewfacer
·
2011-11-02 21:00
面试常见题目之海量数据排序(
编程珠玑
总结一)
编程珠玑
是很经典的算法讨论书籍,想进大公司的朋友还是要好好啃啃的,思路可谓经典,引入位向量概念。 比如常见与国内某社交网站(自然很山寨,我们大学时常用)的面试题目。
wangxiaohigh
·
2011-11-02 21:00
海量数据
编程珠玑
- 代码调优法则 - 消除循环
简单,但有说明意义:f(x)=1-2+3-4+5...+x快速实现:publicstaticintf(intx){ intb=0; for(inti=1;i<=x;i=i+2) b+=i; for(inti=2;i<=x;i=i+2) b-=i; returnb; }我们通过观察可以消除不必要的循环:publicstaticintg(intx){ if(x%2==0) return-(x/2);
方旭
·
2011-10-22 00:00
编程珠玑
调优
法则
代码调优
消除循环
编程珠玑
- 代码调优法则 - 基础篇
鄙人不耻,把
编程珠玑
中内容摘录下来,加深印象,仅供参考:一、空间换时间法则: 1、修改数据结构。增加额外的信息来减少运算。 2、存储预先计算好的结果。 3、高速缓存。
方旭
·
2011-10-21 23:00
编程珠玑
调优
法则
代码调优
书单
程序设计培训教程计算机算法设计与分析数据结构与算法分析C++描述(第三版)进阶书:算法导论算法艺术与信息学竞赛(刘汝佳的黑书,难度较深,不适合新手)+实用算法的分法与程序设计其他: 编程之美--微软技术面试心得 ProgrammingPearls
编程珠玑
insistGoGo
·
2011-10-21 20:00
数据结构
编程
c
算法
面试
微软
笔试心得
这些天和师兄一起去参加笔试,比较发现,笔试前,下面几本书详细看看,笔试可以无忧:1,数据结构2,
编程珠玑
3,概率论4,C编程语言(K&R)5,算法导论
lxmky
·
2011-10-20 10:00
Reservoir Sampling - 蓄水池抽样
问题起源于
编程珠玑
Column12中的题目10,其描述如下:Howcouldyouselectoneofnobjectsatrandom,whereyouseetheobjectssequentiallybutyoudonotknowthevalueofnbeforehand
yu422560654
·
2011-10-17 15:00
编程
c
File
Random
input
扩展
蓄水池抽样
问题起源于
编程珠玑
Column 12中的题目10,其描述如下: http://www.cnblogs.com/HappyAngel/
hcegg
·
2011-10-16 19:00
计数排序算法
其实这个问题是《
编程珠玑
》上介绍的第一个有关于美国电话排序问题的简化,书上介绍运用位向量来解决,并将这种方法和其他的排序算法,如归并排序、快速排序等,做了比较。
zhangkaihang
·
2011-10-10 22:00
ios
编程
算法
电话
output
一个模式匹配算法的优化
看《
编程珠玑
》第8章,里面一章介绍了针对一个模式匹配问题算法的优化策略,由于优化后算法与原始算法效率上的大幅度增强,我被震惊了。问题:在一个向量中寻找最大子向量。书上有伪代码,我还是实现了一下。
doctorsc
·
2011-10-10 15:00
编程
UI
优化
算法
存储
编程珠玑
第14章
这里把所有关于堆的操作写出来。当做标程吧。#include #include #definems1025 typedefstruct_heap { inta[ms]; intsize; }heap; heaph; staticvoid_shift(heap*h,inti) { intj,t,*a=h?h->a:0,n=h?h->size:0; if(!h)return; t=a[i]; whil
ju136
·
2011-10-04 13:00
编程珠玑
第13章
正文为了解决在12章中的随机数问题,本章中的目的是对查看是否在数组中的情况进行处理。那么这里采用了以下几种方法:1、采用C++的set2、采用数组3、采用链表,顺序搜索,插入时不用移动。结果是数组的比链表的要快:1、链表需要读入的内存数比数组大2、数组访问有较好的内存相联性,而链表则不能保证。接下来采用了二叉树,箱,位向量数据结构习题5、实际上就是先分配一大块内存给其使用、不要用一块申请一块。6、
ju136
·
2011-10-03 20:00
数据结构
编程
c
编程珠玑
第12章
正文如何生成0~n-1内的m个随机整数1、方法一比如要从5个数里选出2个数,第一个数的概率是2/5,第二个数的概率是1/4,然后是0/3那么现在已经很清楚了。可以写代码如下:for(inti=0;i
ju136
·
2011-10-03 18:00
编程珠玑
第8章:具有n个浮点数字的向量x,在任何相邻子向量中找出最大和。
http://hi.baidu.com/banyantree/blog/item/7d78b1ef3d2a1e11fdfa3c93.html#include"stdafx.h" #include usingnamespacestd; intFindMaxSumSubSequence(intarr[],intlen,int&begin,int&end) { intres=0;/
wangyangkobe
·
2011-10-03 18:00
编程珠玑
第11章
正文插入排序与快速排序习题1、最大值,最小值不用排序O(n)时间可以找到中值也可以不排序O(n)可以找到均值O(n),不过对于浮点数来说,一般求均值,先排一下序,精度会提高。众数一般用散列效果很好。2、3、4、修改程序,最坏情况下使用对数空间,看一下补充材料。计算机算法艺术第三卷。9、找第K小数也只需要O(n)的时间10、11、12、13、14、可以递归调用时使用qsort(x+b,n);就是移动
ju136
·
2011-10-03 12:00
编程
算法
编程珠玑
第10章
正文如何处理压缩数据,最好是找到数据背后的公式。如何存储矩阵。习题1、把部分数据放到磁盘中,那么相应的代码里面的数据会减少。2、三元组矩阵应该也可以算一种处理方式。3、略去4、略去后面都略去,唉都在讲数据压缩~~
ju136
·
2011-10-03 12:00
编程珠玑
第9章
代码调优:全文解读1、求模: if(num>n)num-=n; 不要使用num%=n;(当num只是n的1倍多一点的时候)。2、注意在访问内存的时候,要注意内存的连续性,如果访问的内存不是连续的,那么程序的运行速度也会受到极大的影响。3、如果max宏与一般的语句是等价的,那么可以用,如果是用在递归中,那么一定要小心。 比如习题的第四题#definemax(a,b)((a)>(b)?
ju136
·
2011-10-02 21:00
编程
float
编程珠玑
第8章
正文中所提及的算法可以在ecnuoj1109上面找到。template TmaxSubSum(T*a,intn) { Ts=0,t=0,mx=a[0]; for(inti=0;ia[i]?mx:a[i]; t=ts?t:s; } if(mx>0)returns; returnmx; }习题1、2、3、略去4、需要测试?这个比较难算5、6、(6题看2.2的答案有点意思。)7、8、略去9题如上面所写的
ju136
·
2011-10-02 19:00
编程
c
算法
测试
IM
浅谈bitmap算法
浅谈bitmap算法 久闻《
编程珠玑
》一书中提出的bitmap算法之大名,只是没有深入的去研究,今天下午有兴致研究一番,才知道其中的玄机奥秘,不亚于KMP算法之巧妙,下面就由浅入深的谈谈bitmap
weihe6666
·
2011-10-02 17:00
bitmap
编程珠玑
第2章:排序、二分查找、签名、向量平移
给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中一32位整数。1、在文件中至少存在这样一个数?2、如果有足够的内存,如何处理?3、如果内存不足,仅可以用文件来进行处理,如何处理? 答案:1、32位整数,包括-2146473648~~2146473647,约42亿个整数,而文件中只有40亿个,必然有整数少了。2、如果采用位数思想来存放,则32位整数最多需要占用43亿个位
wangyangkobe
·
2011-10-02 17:00
编程
编程珠玑
第六章
如果要提高软件的性能,需要从下面几个方面入手:1、算法与数据结构2、算法调优3、数据结构重组4、与系统无关的代码的调优(float取代double)。5、与系统相关的调优,把经常使用的函数进行加速,比如使用汇编6、硬件上使用浮点运算器。可以留个思考题:500位的质因数分解?应该是需要用到C++的大数模板来处理了。
ju136
·
2011-10-02 13:00
编程珠玑
第五章
直接来习题吧1、第一题可以看一下林锐的高质量C/C++编程2、3、4、5、第五题很明显不应该每次都用 for(i=0;i=e)return-1; while(begin>1); assert(*beginv)end=mid; elseif(*mid=e)return-1; if(!record||record!=a) { while(i>1); assert(*beginv)e
ju136
·
2011-10-02 12:00
编程珠玑
第四章
正文里面涉及到程序设计方法学的内容。不再细述1、加及条件是0>1); if(*mid>=v)e=mid; elseif(*mid #include intcmp(constvoid*a,constvoid*b) { return(*(int*)a)-(*(int*)b); } intbs(int*a,intbegin,intend,intv) { int*b=a+
ju136
·
2011-10-02 00:00
编程
测试
null
Random
编程珠玑
第三章
习题1、首先是按照税率找到刚好税率最好的情况。这里用二分。inta[100]={2200,2700,....}doublec[100]={0,0.14,0.15,0.16,...}首先用二分找最刚好比其小的那个数intbs(int*a,intb,inte,intv) { int*begin=a+b,int*end=a+e,*mid; if(!a||b>=e)return-1; while(begi
ju136
·
2011-10-01 21:00
编程
Date
String
iterator
domain
output
编程珠玑
第二章
A题给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中一32位整数。1、在文件中至少存在这样一个数?2、如果有足够的内存,如何处理?3、如果内存不足,仅可以用文件来进行处理,如何处理?答案:1、32位整数,包括-2146473648~~2146473647,约42亿个整数,而文件中只有40亿个,必然有整数少了。2、如果采用位数思想来存放,则32位整数最多需要占用43亿个位。
ju136
·
2011-10-01 15:00
编程
c
算法
String
iterator
编程珠玑
第一章
原文中的问题:如何在1MB的空间里面对一千万个整数进行排序?并且每个数都小于1千万。实际上这个需要1.25MB的内存空间。1MB总共有838,8608。所以估计也可以在1MB左右的空间里面进行排序了。#include #include #defineBITSPERWORD32 #defineSHIFT5 #defineMASK0x1F #defineN10000000 inta[1+N/BITSP
ju136
·
2011-09-29 00:00
编程
c
测试
存储
fun
电话
编程珠玑
番外篇 -K. 高级语言是怎么来的-7
LISP语言前传Lisp的主要设计者JohnMcCarthy曾经就Lisp的发展史,专门写过一篇HistoryofLisp的文章。这里介绍的历史,基本史实部分参照了JohnMcCarthy的这篇文章,以及同时期MIT的关于Lisp的技术报告。Lisp的历史要从IBM的神奇机器704说起。此时是1954年,尽管距离1946年第一台计算机ENIAC的出现已经八年了,商用计算机市场还仅仅起步。很早就进入
Eric kylexlau
·
2011-09-28 05:00
CompSci
pearl
编程珠玑
番外篇 -K. 高级语言是怎么来的-7
LISP语言前传Lisp的主要设计者JohnMcCarthy曾经就Lisp的发展史,专门写过一篇HistoryofLisp的文章。这里介绍的历史,基本史实部分参照了JohnMcCarthy的这篇文章,以及同时期MIT的关于Lisp的技术报告。Lisp的历史要从IBM的神奇机器704说起。此时是1954年,尽管距离1946年第一台计算机ENIAC的出现已经八年了,商用计算机市场还仅仅起步。很早就进入
Eric kylexlau
·
2011-09-27 21:00
CompSci
Pearl
上一页
19
20
21
22
23
24
25
26
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他