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
***编程珠玑***
编程珠玑
第三章
1、本书出版之时,美国的个人收入所得税分为5种不同的税率,其中最大的税率大约为40%.以前的情况则更为复杂,税率也更高。下面所示的程序文本采用25个if语句的合理方法来计算1978年的美国联邦所得税。税率序列为0.14,0.15,0.16,0.17,0.18.....。序列中此后的计算大于0.01.有何建议呢?ifincome<=2200 tax=0;elseifincome<=2700
dazhong159
·
2012-07-27 10:00
编程珠玑
--如何使用位逻辑运算(例如不、或、移位)来实现位向量
首先说明一下,假设使用的是8bit的数据类型(32bit的不好画),数据是怎么排列的:然后去理解下面的代码:#defineBITSPERWORD32//表示一个整型含有32个bit #defineSHIFT5//单位位移量 #defineMASK0x1F//掩码 #defineN10000000//表示有1000万个数 inta[1+N/BITSPERWORD]//使用整型数组模拟定义1000万个
chen895281773
·
2012-07-27 00:00
编程
编程珠玑
--第12章 取样问题
问题描述:程序的输入包含两个整数m和n,其中m #include usingnamespacestd; intmain(){ sets; s.insert(3); s.insert(3); coutS; while(S.size()::iteratori; for(i=S.begin();i!=S.end();++i) cout<<*i<
chen895281773
·
2012-07-26 17:00
编程
c
iterator
ini
编程珠玑
(性能篇)
第六章性能透视,提出了几个对性能进行优化的层次算法和数据结构算法优化数据结构重组代码优化硬件第七章封底计算,没看仔细。第八章算法设计技术,提出了一个小问题(最大子序列和),针对这个问题研究四种不同的算法和对应的复杂度。intmaxvalue(inta,intb){ if(a>b) returna; else returnb; } //三层循环 intfun1(){ intmaxsofar=0; i
Detective_Xin
·
2012-07-25 23:00
编程珠玑
--第一章使用位图
问题描述:一个最多包括n个正整数的文件,每个数都小于n,其中n=10000000.如果在输入文件中有任何整数重复出现的话就是致命错误。要求按升序输出这些数。由于我们只能操纵字节,但是我们可以使用字节来操纵字节中的位,我们使用int(4个字节),如果我们想要将第k位置为1的话,我们只需要这样操作:a[k/32]|pow(2,31-k%32),当我们要判断某位是不是1的时候,使用相似的方法:a[k/3
chen895281773
·
2012-07-25 22:00
编程珠玑
(三)取样问题
要从0~n-1的整数中取出来m(m #include usingnamespacestd; //rand()函数生成一个0到RAND_MAX(stdlib.h中定义的值为2147483647(有符号整数的最大值))之间的整数 voidrand_select1(intn,intm);//在0~n内选择出m个整数 voidrand_select2(intn,intm); voidran
ysu108
·
2012-07-24 21:00
编程
算法
iterator
Exchange
IM
编程珠玑
(二)寻找一个字符串中最长重复字串
例如字符串"banana"中最长重复字串为ana,这里用到了一个很简单的数据结构字符串数组,其实为一个字符串指针数组,一个char*类型的数组,用字符地址代表每个字符,可以节省空间。算法很简单,求出每个后缀数组,然后对后缀数组进行排序,最后求出相邻的两个数组之间的最大公共字串。#include usingnamespacestd; voidcommon_str(char*s,char**c
ysu108
·
2012-07-24 16:00
编程珠玑
(基础篇)
第一章关于计数排序的,题意如下:输入:一个最多包含n个正整数的文件,每个数都小于n,其中n=10^7。如果在输入文件中有任何正数重复出现就是致命错误。没有其他数据与该正数相关联。输出:按升序排列的输入正数的列表。约束:最多有1MB的内存空间可用,有充足的磁盘存储空间可用。运行时间最多几分钟,运行时间为10秒就不需要进一步优化。思路:利用位向量,当且仅当整数i在文件中出现时,第i位为1.最后检验每一
Detective_Xin
·
2012-07-20 19:00
编程珠玑
(二)字符串左旋
编程珠玑
第二章的内容,有些内容没有看明白作者的意思。下面是向量左旋和变位词的问题。一、将一个n元向量左旋转i个位置。例如当N=8,i=3时,向量abcdefgh旋转为defghabc。
ysu108
·
2012-07-20 19:00
编程
c
算法
n2
编程珠玑
第二章
1、给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中一32位整数。1、在文件中至少存在这样一个数?2、如果有足够的内存,如何处理?3、如果内存不足,仅可以用文件来进行处理,如何处理?答案:1、32位整数,包括-2146473648~~2146473647,约42亿个整数,而文件中只有40亿个,必然有整数少了。2、如果采用位数思想来存放,则32位整数最多需要占用43亿个位。
dazhong159
·
2012-07-20 18:00
编程珠玑
第一章
1、1000w个整数(没有重复)进行排序,可用内存只有1M,怎么排序? 1000w*4/(1024*1024)=38.14M; 所以划分40个通道,每次读取25w个数据(需要不到1M内存),利用快速排序或者堆排序进行排序,然后写回到文件中; 对得到的40个排好序的文件两两进行归并排序,直到得到一个排好序的文件即可。 2、1000w个整数(没有重复)进行排序,内存不限,怎么排序?
dazhong159
·
2012-07-20 17:00
编程珠玑
(一)位图
这个问题是编程之美中第一章开篇提到的问题,bitmap排序。大概意思是这样的,要对n个不重复的整数进行排序,每个数小于n(10的7次方)要求内存1M。其实是区号为800开始的电话号码,800不算在内。这个是典型的位图(bitmap,应该是位映射我觉得,估计是好翻译才把map翻译成图的)。下面是代码:#include usingnamespacestd; constintNUM_COUNT=
ysu108
·
2012-07-20 11:00
编程
File
null
FP
电话
编程珠玑
学习笔记 Aha算法 思考以及一些代码实现
"Aproblemthatseemsdifficultmayhaveasimple,unexpectedsolution"-一个看似难以解决的问题,或许在背后隐藏着一个简单,意想不到的解法 三个引例: 1. 输入一个连续文件,文件中存储了之多4,000,000,000个32bit的整数,并且这些整数是按照任意顺序排列的。请你找出一个没有在这个序列中的整数(为什么一定会有至少一个missing的数据
hopeztm
·
2012-07-19 18:00
《
编程珠玑
》中的一些代码
位图排序使用位图对[0..N-1]中不同的整数进行排序/*bitmapsort--Sortdistinctintegersintherange[0..N-1]*/ #include #defineBITSPERWORD32 #defineSHIFT5 #defineMASK0x1F #defineN10000000 inta[1+N/BITSPERWORD]; voids
luxiaoxun
·
2012-07-16 18:00
编程珠玑
-葵花宝典
【
编程珠玑
】想不到薄薄的200+页,居然能让我如此地狂笑不止,暗叹妙哉,手不释卷。对于学习计算机算法而言,有一点基础之后就可以翻翻这本“大师系列”的课外读物了。
bibodeng
·
2012-07-16 10:43
编程
算法
技术
断言
珠玑
编程珠玑
-葵花宝典
【
编程珠玑
】想不到薄薄的200+页,居然能让我如此地狂笑不止,暗叹妙哉,手不释卷。对于学习计算机算法而言,有一点基础之后就可以翻翻这本“大师系列”的课外读物了。
bibodeng
·
2012-07-16 10:43
技术
算法
编程
数据结构与算法
编程珠玑
_第二章_啊哈 算法
三个问题:一、给出一个顺序文件,它最多包含40亿个随机排列的32位整数。 问题:找出一个不在文件中的32位整数。 注意:题目中没有说,这40亿个数是否是含有重复的数据 条件限制: 1、如果有足够的内存,如何处理? 2、如果内存仅有上百字节(内存不足)且可以用若干外部临时文件,如何处理?二、类似字符串循环移位 举例:比如abcdef左移三位,则变成defabc
insistGoGo
·
2012-07-15 22:00
【
编程珠玑
】第二章 二分查找的巧妙应用
以下内容转自http://www.haogongju.net/art/994660《
编程珠玑
》上提到当要输入的数据很多,且没有规律时,可以考虑编写一个格式信函发生器(formlettergenerator
fivedoumi
·
2012-07-13 14:00
编程珠玑
第一章 习题解答
from: http://www.fookwood.com/archives/605第一章简单来说就介绍了个用bitmap排序的实例,从思维上给了我们思考问题的另一个角度。1.c语言的话可以用qsort,但是感觉qsort的比较函数的定义较为复杂,还是推荐用c++中的sort。1int main(void){2 vectorv;3 for( int i=0;i2#include3#in
fivedoumi
·
2012-07-10 17:00
插入查找元素效率问题——《
编程珠玑
》读书笔记
这两天看了第13章,看了好长一段时间,主要花在理解和编程实现上面,感觉自己的理解能力还有待提高。 这一章主要讲如何实现一个有序集合(Set),该集合插入元素时不能插入重复元素,每次插入完后集合中元素的排列是有序的。书上一共使用了6种数据结构实现这个集合:STL中的set(红黑数)、数组、链表、二分查找树、位向量、桶,使用了3种优化方案:哨兵(标记元素)、指针的指针(用于实现递归向迭代
huagong_adu
·
2012-07-09 21:00
编程
优化
report
读书
delete
insert
编程珠玑
-第一章-位图排序
import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.Writer; import java.util.Random; public class BitMapSearch {
bylijinnan
·
2012-07-05 20:00
java
编程珠玑
也做了一下腾讯前端面试题
看到这个帖子:http://www.cnblogs.com/ilian/archive/2012/07/01/tx-test-entry.html当时就想到了《
编程珠玑
》里讲到的bitmap算法。
NeilChen
·
2012-07-02 00:00
编程珠玑
番外篇-D. 高级语言怎么来的
编程珠玑
番外篇-D. 高级语言怎么来的-1作者:徐宥原文:http://blog.youxu.info/2009/05/13/hpl/终于放暑假了, 有心情来八卦了.
xiaojianpitt
·
2012-07-01 17:00
编程
虚拟机
语言
lisp
fortran
跨平台
编程珠玑
番外篇-D. 高级语言怎么来的
编程珠玑
番外篇-D.高级语言怎么来的-1作者:徐宥原文:http://blog.youxu.info/2009/05/13/hpl/终于放暑假了,有心情来八卦了.我主要想八卦一下高级语言的设计思想和各种范式的来龙去脉
iteye_5282
·
2012-07-01 17:00
运维
php
嵌入式
java 实现bitMap 结构
编程珠玑
中第一篇讲的就是使用bitmap来排序大文件里面的数据。下面给出一个简单的BitMap实现。 主要使用Byte数组。主要就是shiyong为操作来设置为1 的元素。
sunlujing
·
2012-06-28 21:00
《
编程珠玑
Ⅱ》 - 书摘精要
(P7)当你调优单个子过程或函数的性能时,性能监视工具能告诉你运行时间都花在了哪里;(P30)合适的编程语言可以使代码的长度减少一量级,清晰程度上升一个量级。请大家自己发掘各自语言的优势和特性;(P58)做事应该先做最难的部分。如果最难的部分无法做到,那还在简单的部分上浪费时间干嘛?一旦困难的地方搞定了,那你就胜利在望了;
GATTACA2011
·
2012-06-24 10:00
算法
编程珠玑
《
编程珠玑
Ⅰ》 - 书摘精要
(P12)二分搜索:初始条件是已知一个对象存在于一个给定的范围内,而一次探测操作可以告诉我们该对象是否低于、等于或高于给定的位置。二分搜索通过重复探测当前范围的中点来定位对象,那么我们将当前范围减半,然后继续下一次探测。当找到所需要的对象或范围为空时停止;(P14)翻转代码在时间和空间上都很高效,而且代码非常简短;(P16) 排序:排序最显而易见的用处是产生有序的输出,该输出既可以是系统规范要求的
GATTACA2011
·
2012-06-24 10:06
算法
编程珠玑
《
编程珠玑
》-第二章:寻找兄弟单词+电话簿功能 算法研究
题目是这样的:兄弟单词(在《
编程珠玑
》一书中称为换位词),就是只使用项目的字母,不同的组合构成不同的单词deposit,dopiest,posited,topside就是一组兄弟单
kingjinzi_2008
·
2012-06-23 11:00
书单
2012阅读清单: 0.C程序设计语言(第二版) 1.Unix高级环境编程 2.Unix网络编程卷1:套接字 3.算法:C语言实现(第1~4部分) 基础知识,数据结构,排序及搜索 4.
编程珠玑
guolb57
·
2012-06-19 17:00
数据结构
编程
算法
unix
网络
语言
bitmap算法
来自于《
编程珠玑
》。所谓的Bit-map就是用一个bit位来标记某个元素对应的Value,而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。
pp0xx0ww0
·
2012-06-19 15:00
学习书籍列表
cs相关电子书自己看书的总结,括号内是我自己对书的评价,包括书的内容,对我的帮助,满分10分学习中http现代操作系统深入理解计算机系统Linux程序设计已购买代码大全魏斯曼演讲圣经爱因斯坦传
编程珠玑
计算机程序的构造和解释设计模式
buck84
·
2012-06-12 19:00
编程
[
编程珠玑
]第一章 开篇
1.问题描述输入:一个最多包含n个整数的文件,文件中的每个整数都小于n,其中n=10^7。输入文件中没有重复的整数。输出:按升序排列的整数列表约束:最多有大约1MB的内存空间,有充足的磁盘存储空间可用。(1)采用外排序;每次读入一部分数据至内存进行排序,然后对各部分进行归并。(2)采用位图法;用一个一千万位的bit串来表示所有的整数,从左到右每一位分别代表整数1,2,3,4,......。初始时,
weiyuanke
·
2012-06-12 14:00
编程
算法
python
存储
语言
磁盘
【
编程珠玑
】第一章 开篇
【
编程珠玑
】第一章开篇一.题目 如何给磁盘文件排序?
chenglinhust
·
2012-06-10 11:00
java程序员终极推荐图书pdf下载
effective java4、java网络高级编程5、Java数据结构和算法6、企业应用架构模式(中文版)(第二版)7、[重构-改善既有代码的设计]8、敏捷软件开发:原则、模式与实践9、人月神话10、
编程珠玑
zzq19860626
·
2012-06-07 21:00
java
java资源
java程序员终极推荐图书pdf下载
effective java4、java网络高级编程5、Java数据结构和算法6、企业应用架构模式(中文版)(第二版)7、[重构-改善既有代码的设计]8、敏捷软件开发:原则、模式与实践9、人月神话10、
编程珠玑
zzq19860626
·
2012-06-07 21:00
java
java资源
java程序员终极推荐图书pdf下载
effective java4、java网络高级编程5、Java数据结构和算法6、企业应用架构模式(中文版)(第二版)7、[重构-改善既有代码的设计]8、敏捷软件开发:原则、模式与实践9、人月神话10、
编程珠玑
zzq19860626
·
2012-06-07 21:00
java
java资源
【
编程珠玑
(续)】第二章 关联数组
一,关联数组 关联数组和数组类似,由以名称作为键的字段和方法组成。它包含标量数据,可用索引值来单独选择这些数据,和数组不同的是,关联数组的索引值不是非负的整数而是任意的标量。这些标量称为Keys,可以在以后用于检索数组中的数值。关联数组的元素没有特定的顺序,你可以把它们想象为一组卡片。每张卡片上半部分是索引而下半部分是数值。JavaScript的对象本质就是一个关联数组。Perl语言中的关联
tianshuai11
·
2012-06-06 14:00
JavaScript
编程
算法
struct
null
input
【
编程珠玑
(续)】第一章 性能监视工具
一,计算素数第一个程序:如果整数n,从2开始到n-1都不能整除则为素数。注意,n=2时一定是素数的判断#include usingnamespacestd; intprime(intn) { inti; for(i=2;i #include usingnamespacestd; introot(intn) { return(int)sqrt((float)n); } intprime(intn)
tianshuai11
·
2012-06-06 10:00
数据结构
编程
算法
linux
工具
float
编程珠玑
12 取样问题
问题:从0到n-1的n个数中,随机选取m个数字,并且顺序打印出来,可以使用标准库的rand()函数方法:使用Knuth方法,使用rand()%n #include #include #include usingnamespacestd; voidgenknuth(intm,intn) { clock_tstart,end; start=clock(); srand(time(NULL));
lxmky
·
2012-06-06 10:00
编程
算法
null
文档
input
扩展
位图排序及其扩展应用——《
编程珠玑
》读书笔记
一、基本的位图排序 问题1:输入一个包含n=100万个正整数的文件,每个正整数都小于N=1000万,而且这100万个正整数没有重复,对这个文件的数字进行排序,保存结果到文件中。要求占用尽可能小的内存,速度尽可能快。 分析解决:如果用一个int保存一个正整数,一个int为4Byte,100万个数要用400万Byte,约为4M。如果用快排,时间复杂度为O(nlogn)。
huagong_adu
·
2012-06-03 16:00
编程
File
读书
iterator
扩展
output
洗牌程序
之前在写抽样问题——《
编程珠玑
》读书笔记这篇文章的时候提到将一个数列进行重新排列,目的是弄乱原有数据的排列,相当于洗牌,这篇文章主要讲讲这个洗牌程序的实现。
huagong_adu
·
2012-06-01 00:00
Algorithm
算法
Integer
Random
iterator
Exchange
第十五章 字符串(一)
第十五章是《
编程珠玑
》的最后一章,本章由易到难围绕字符串处理主要分三个部分:1,单词。2,短语。3,文本。在这三个问题中涉及到的技术有C++中的标准模板库,哈希表,新介绍的一种数据结构“后缀数组”。
qiuyang0607
·
2012-05-31 19:24
编程珠玑
第十五章 字符串(一)
第十五章是《
编程珠玑
》的最后一章,本章由易到难围绕字符串处理主要分三个部分:1,单词。2,短语。3,文本。
qiuyang0607
·
2012-05-31 19:00
数据结构
算法
String
文档
input
pair
编程珠玑
15.2 短语
查找字符串中最长重复字符串,方法:后缀数组+快排代码如下:/* *pp_15_2.cpp * *Createdon:2012-5-31 *Author:ict */ #include #include #include #include usingnamespacestd; #defineMAXN10000 //qsort比较函数 //这个函数注意指针的转换,需要理解??? intpstrcm
lxmky
·
2012-05-31 17:00
编程
c
File
null
FP
蓄水池抽样——《
编程珠玑
》读书笔记
问题:如何随机从n个对象中选择一个对象,这n个对象是按序排列的,但是在此之前你是不知道n的值的。 思路:如果我们知道n的值,那么问题就可以简单的用一个大随机数rand()%n得到一个确切的随机位置,那么该位置的对象就是所求的对象,选中的概率是1/n。 但现在我们并不知道n的值,这个问题便抽象为蓄水池抽样问题,即从一个包含n个对象的列表S中随机选取k个对象,n为一个非常大或
huagong_adu
·
2012-05-31 17:00
编程
null
读书
Random
iterator
input
编程珠玑
15.1 单词
编程珠玑
单词中,需要统计《圣经》一书中,出现频率最高的单词,这是典型的TOPK问题,采用经典的Hash+堆方法解决,代码如下:#include #include #include #include #include
lxmky
·
2012-05-31 14:00
数据结构
编程
function
struct
domain
FP
抽样问题——《
编程珠玑
》读书笔记
问题:输入两个整数m和n,并且m #include #include #include usingnamespacestd; voidgenknuth(intm,intn) { time_tt_start,t_end; t_start=time(NULL); for(inti=0;i!=n;++i) if((rand()%(n-i))::max()/8; srand(time(
huagong_adu
·
2012-05-30 20:00
编程
算法
null
读书
iterator
Random
【
编程珠玑
】代码优化的27条经典法则
1.空间换时间法则 1.1修改数据结构 例如:计算球面距离:输入为球面上5000个点组成的集合S,再输入20000个点组成的序列,每个点实用经度和纬度表示,对于20000个点的序列,程序必须求出S中哪个点最接近它,距离使用球体中心与两个点的连线之间的夹角来度量。 直接计算需要用到大量的三角函数,开销很大,而两个点的距离随其欧氏距离单调增加(减小),故可将(经度,纬度)表示的数据
tianshuai11
·
2012-05-27 22:00
数据结构
编程
优化
测试
存储
linux内核
【
编程珠玑
】第十五章 字符串
一,概述1)统计每个字符串出现的个数的程序实现,利用Map容器:#include#includeusingnamespacestd;intmain(){mapM;map::iteratorj;stringt[5]={"abc","dd","abc","dd","dd"};for(inti=0;ifirstsecond"#include#includetypedefstructnode*nodept
iteye_17686
·
2012-05-27 22:00
【
编程珠玑
】第十五章 字符串
一,概述 1)统计每个字符串出现的个数的程序实现,利用Map容器:#include #include usingnamespacestd; intmain() { mapM; map::iteratorj; stringt[5]={"abc","dd","abc","dd","dd"}; for(inti=0;ifirstsecond" #include #include typedef
tianshuai11
·
2012-05-27 22:00
数据结构
编程
struct
String
null
iterator
上一页
16
17
18
19
20
21
22
23
下一页
按字母分类:
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
其他