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
编程珠玑习题解答
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
《
编程珠玑
》读书笔记(一)
《
编程珠玑
》(第二版)第一部分主要是讲基础第一章开篇:本章主要解决的问题是“在内存不足的情况下,如何对数据进行排序”,提出了两种解决方法:归并排序和位图排序。
pirage
·
2012-05-26 17:00
近期学到的一些关于IT面试的东西(不断整理扩充)
思路:抽象为几何的问题 ------------------------------------------------------ 以下几个题目是关于位操作的,在与寝室同学的交流中学习得到: 2.
编程珠玑
上关于把大量的存放于文件
songtianbao
·
2012-05-24 11:00
面试
笔试
近期学到的一些关于IT面试的东西(不断整理扩充)
思路:抽象为几何的问题------------------------------------------------------以下几个题目是关于位操作的,在与寝室同学的交流中学习得到:2.
编程珠玑
上关于把大量的存放于文件中的
songtianbao
·
2012-05-24 11:00
笔试
面试
【
编程珠玑
】第十四章 堆(排序,优先级队列)
一,堆 1)堆:任何结点的值都小于或等于其孩子的值的完全二叉树为小根堆 任何结点的值都大于或等于其孩子的值的完全二叉树为大根堆 为了方便使用完全二叉树的性质,数组从下标1开始。 这样:leftChild=2*i; rightChild=2*i+1; parent=i/2; null in
tianshuai11
·
2012-05-23 17:00
编程
C++
c
算法
null
insert
【
编程珠玑
】第十三章 搜索
一,概述 第十二章,介绍生成某个范围内随机数,并按顺序输出。 本章主要介绍,存储按序输出的容器或者说存放集合的方法。并实现按序插入,按序输出。 1)set容器 1>set容器小例子:#include #include usingnamespacestd; intmain() { setS; S.insert(1); S.insert(3); S.i
tianshuai11
·
2012-05-22 14:00
编程
report
Integer
iterator
Class
insert
【
编程珠玑
】第十二章 取样问题
一,概述 问题描述:如何生成0~n-1内的m个随机整数(不重复) 需求:按序输出,并且保证每个子集被选中的可能性相等。 1)给出下面代码#include"stdio.h" #include"stdlib.h" #include"time.h" voidgetRandNumber(intm,intn)//在0--n-1中挑选m个随机数 { srand(time(NULL)
tianshuai11
·
2012-05-19 17:00
Algorithm
编程
算法
null
iterator
文档
【
编程珠玑
】第十二章 取样问题
一,概述 问题描述:如何生成0~n-1内的m个随机整数(不重复) 需求:按序输出,并且保证每个子集被选中的可能性相等。 1)给出下面代码 #include "stdio.h" #include "stdlib.h" #include "time.h" void getRandNumber(int m,int n)//在0
aijuans1
·
2012-05-19 17:00
编程珠玑
编程珠玑
3.7.4 日期问题
转载http://www.netmediac.com/article/3463.html(程序自己实现,他的有问题)日期问题:给定两个日子,计算这两个日子之间的天数;给定某个日子,返回它在一周中属于第几天;给定某年某月,打印出这一月份的日历「分析」1.给定两个日子,计算两个日子之间的天数解决思路:①计算该日子是该年当中的第几天;②闰年的处理;③两个日子的年份之间经过几个闰年。2. 给定某个日子,返
tzasd89812
·
2012-05-18 18:00
编程
Date
struct
日历
【
编程珠玑
】第十一章 排序 (插入排序和快速排序的深度优化)
一,概述 1)插入排序 要找到合适的位置,需要判断前一个元素比t小而后一个元素比t大。然后将t插入正确位置。 比较a[j-1] 跟 a[j] 的关系很关键 isort1: 没有到达最终位置,就交换该元素和它前面的元素 #include <algorithm> for(int i=1;i<5;i++) for(int j=i;j>0&&am
aijuans1
·
2012-05-18 11:00
快速排序
【
编程珠玑
】第十一章 排序 (插入排序和快速排序的深度优化)
一,概述 1)插入排序 要找到合适的位置,需要判断前一个元素比t小而后一个元素比t大。然后将t插入正确位置。 比较a[j-1] 跟a[j]的关系很关键 isort1:没有到达最终位置,就交换该元素和它前面的元素#includefor(inti=1;i0&&a[j-1]>a[j];j--) swap(a[j-1],a[j]); isort2:将库函数替换 inttem
tianshuai11
·
2012-05-18 11:00
Algorithm
编程
优化
算法
null
PIVOT
实现一个简单的BST
【
编程珠玑
】看珠玑看了一半了,多是趁着闲着的时候看上几页,思考一下后面的问题。
bibodeng
·
2012-05-18 06:49
算法
编程珠玑
BST
实现一个简单的BST
【
编程珠玑
】看珠玑看了一半了,多是趁着闲着的时候看上几页,思考一下后面的问题。
bibodeng
·
2012-05-18 06:49
算法
编程珠玑
BST
数据结构与算法
【
编程珠玑
】第十章 节省空间
一,概述 1)节省空间带来的好处 程序变小使得加载更快;更容易读入高速缓存;需要操作的数据减少从而减少操作时间。 2)节省空间的方法 数学函数式替代要存储的数据。简单例子为:a[i]=i。如果你要读取数组第i个元素只需要通过函数f(i)=i得到元素值,而不需要将所有数据存储在数组中。 改变数据结构。如果一个数字范围为0-200,则完全没有必要
tianshuai11
·
2012-05-17 16:00
数据结构
编程
c
加密
解密
存储
【
编程珠玑
】第十章 节省空间
一,概述1)节省空间带来的好处程序变小使得加载更快;更容易读入高速缓存;需要操作的数据减少从而减少操作时间。2)节省空间的方法数学函数式替代要存储的数据。简单例子为:a[i]=i。如果你要读取数组第i个元素只需要通过函数f(i)=i得到元素值,而不需要将所有数据存储在数组中。改变数据结构。如果一个数字范围为0-200,则完全没有必要采用32位的int型存储,只需要采用8位的无符号char型存储即可
aijuans1
·
2012-05-17 16:00
编程珠玑
【
编程珠玑
】第九章 代码调优
一,概述 1)代码调优的目的是什么? 减少CPU运行时间;减少分页或增加高速缓存命中率;减少程序所需空间 2)代码调优为什么不能“滥用”? 1>效率的角色:不成熟的优化是大量编程灾害的根源,可能危及程序正确性、功能及可维护性。 2>度量工具:利用性能检测工具,找到“热点”代码,即程序关键区域,然后优化。 3>设计层面:效率问题可以从多个方
tianshuai11
·
2012-05-15 23:00
数据结构
编程
优化
算法
工具
testing
【
编程珠玑
】第九章 代码调优
一,概述 1)代码调优的目的是什么? 减少CPU运行时间;减少分页或增加高速缓存命中率;减少程序所需空间 2)代码调优为什么不能“滥用”? 1>效率的角色:不成熟的优化是大量编程灾害的根源,可能危及程序正确性、功能及可维护性。 2>度量工具:利用性能检测工具,找到“热点”代码,即程序关键区域,然后优化。 3>设计层面:效率问题可以从多个方面进行解决(算法和
aijuans1
·
2012-05-15 23:00
编程珠玑
【
编程珠玑
】内联函数和宏
一,内联函数的用法内联函数从源码层层看,有函数的结构,而在编译后,却不具备函数的性质。编译时,类似宏替换,使用函数体替换调用处的函数名。一般在代码中用inline修饰,但是能否形成内联函数,需要看编译器对该函数定义的具体处理。inline Tablefunction(intI) //是没有效果的,编译器只是把函数作为普通的函数申明,我们必须定义函数体。Inlinetablefunction(in
tianshuai11
·
2012-05-15 17:00
编程
c
table
Class
编译器
【
编程珠玑
】内联函数和宏
一,内联函数的用法 内联函数从源码层层看,有函数的结构,而在编译后,却不具备函数的性质。编译时,类似宏替换,使用函数体替换调用处的函数名。一般在代码中用inline修饰,但是能否形成内联函数,需要看编译器对该函数定义的具体处理。 inline Tablefunction(int I) //是没有效果的,编译器只是把函数作为普通的函 数申明,我们必须定义函数体。 In
aijuans1
·
2012-05-15 17:00
编程珠玑
【
编程珠玑
】第八章 算法设计技术
一,概述 问题:求一维数组中连续子向量的最大和。 例如:a[6]={3,4,-2,-9,10,8};则最大连续子向量的和为10+8=18 1)解法一:简单算法#include #definemax(a,b)((a)>(b)?(a):(b)) intmain() { inta[6]={3,4,-2,-9,10,8}; inti,j,k; intsum=0; intmaxsofar=
tianshuai11
·
2012-05-15 10:00
数据结构
编程
c
算法
优化
【
编程珠玑
】第八章 算法设计技术
一,概述 问题:求一维数组中连续子向量的最大和。 例如:a[6]={3,4,-2,-9,10,8}; 则最大连续子向量的和 为 10+8 = 18 1)解法一:简单算法 #include <stdio.h> #define max(a, b) ((a)>(b)?(a):(b)) int main() { int a[6]={3,4,-2,-9,10,8}; int
aijuans1
·
2012-05-15 10:00
编程珠玑
【
编程珠玑
】第七章 粗略估算
一,概述 1)72法则:单位时间增长率*时间=72 则该时间完成初始值翻番 题目:假设最初投资金额为100元,复息年利率9%,实现资金翻番需要多久? 利用“72法则”,将72除以9(增长率),得8,即需约8年时间,投资金额滚存至200元(翻番),而准确需时为8.0432年。 题目:盘子中的菌每小时增长3%,那么其数量多久会翻番? 24小时(3
tianshuai11
·
2012-05-14 18:00
编程
【
编程珠玑
】第七章 粗略估算
一,概述 1)72法则 :单位时间增长率 * 时间 =72 则该时间完成初始值翻番 题目:假设最初投资金额为100元,复息年利率9%,实现资金翻番需要多久? 利用“72法则”,将72除以9(增长率),得8,即需约8年时间,投资金额滚存至200元(翻番),而准确需时为8.0432年。 题目:盘子中的菌每小时增长3%,那么其数量多久会翻番? 24小时(3 * 24 =72) 2
java-mans
·
2012-05-14 18:00
编程珠玑
【
编程珠玑
】第七章 粗略估算
一,概述 1)72法则 :单位时间增长率 * 时间 =72 则该时间完成初始值翻番 题目:假设最初投资金额为100元,复息年利率9%,实现资金翻番需要多久? 利用“72法则”,将72除以9(增长率),得8,即需约8年时间,投资金额滚存至200元(翻番),而准确需时为8.0432年。 题目:盘子中的菌每小时增长3%,那么其数量多久会翻番? 24小时(3 * 24 =72) 2
aijuans1
·
2012-05-14 18:00
编程珠玑
【
编程珠玑
】第六章 程序性能分析
一,概述 如果要提高软件的性能,需要从下面几个方面入手: 1、算法与数据结构 2、算法调优 3、数据结构重组 4、与系统无关的代码的调优(float取代double)。 5、与系统相关的调优,把经常使用的函数进行加速,比如关键代码使用汇编代替高级语言 6、硬件上使用浮点加速器。二,习题 2)因子分解 例题:大于1的正整数n可以分解为:n=x
tianshuai11
·
2012-05-14 16:00
数据结构
编程
算法
input
fun
output
【
编程珠玑
】第六章 程序性能分析
一,概述 如果要提高软件的性能,需要从下面几个方面入手: 1、算法与数据结构 2、算法调优 3、数据结构重组 4、与系统无关的代码的调优(float取代double)。 5、与系统相关的调优,把经常使用的函数进行加速,比如关键代码使用汇编代替高级语言 6、硬件上使用浮点加速器。 二,习题 2)因子分解 例题:大于1的正整数n可以分解为:n = x1*x2*
aijuans1
·
2012-05-14 16:00
性能分析
【
编程珠玑
】第五章 编程小事
一,概述 主要讲解如何保证编程的正确性。在程序中加入断言(assert(断言内容)//如果错误,则终止程序。否则正常执行)。 typdef //声明自定义类型 typedefintsize;//声明int型整数的别名 sizearray[4]; typedefstructtagNode { char*pItem; pNode*pNext; }*
tianshuai11
·
2012-05-14 14:00
Algorithm
编程
struct
测试
search
float
【
编程珠玑
】第五章 编程小事
一,概述 主要讲解如何保证编程的正确性。在程序中加入断言(assert(断言内容) //如果错误,则终止程序。否则正常执行)。 typdef //声明自定义类型 typedef int size; //声明int 型整数的别名 size array[4]; typedef struct tagNode { char *pItem; pNode *pNext; } *pNode
aijuans1
·
2012-05-14 14:00
编程珠玑
【
编程珠玑
】第四章 编写正确的程序
1、对下标限定界限:加条件0 usingnamespacestd; intbs(int*a,intbegin,intend,intv) { int*b=a+begin;//开始 int*e=a+end;//结束 int*mid=NULL;//中间 while(b>1);//得到中间位置的地址 if(*mid>=v) e=mid; else b=mid+1; } if((e-a) #incl
tianshuai11
·
2012-05-14 09:00
编程
测试
null
Random
【
编程珠玑
】第四章 编写正确的程序
1、对下标限定界限:加条件 0<=l u<=n-1 2、这个函数可以写成如下形式: #include <iostream> using namespace std; int bs(int *a, int begin, int end, int v) { int *b = a + begin; //开始 int *e = a + end; //
aijuans1
·
2012-05-14 09:00
编程珠玑
【
编程珠玑
】第三章 数据决定程序结构
一,内容 通过使用恰当的数据结构来替代复杂的代码。二,习题1、题目描述:本书出版之时,美国的个人收入所得税分为5种不同的税率,其中最大的税率大约为40%.以前的情况则更为复杂,税率也更高。下面所示的程序文本采用25个if语句的合理方法来计算1978年的美国联邦所得税。税率序列为0.14,0.15,0.16,0.17,0.18.....。序列中此后的计算大于0.01.有何建议呢?ifincom
tianshuai11
·
2012-05-12 23:00
编程
Date
String
python
search
iterator
【
编程珠玑
】第三章 数据决定程序结构
一,内容 通过使用恰当的数据结构来替代复杂的代码。 二,习题 1、题目描述:本书出版之时,美国的个人收入所得税分为5种不同的税率,其中最大的税率大约为40%.以前的情况则更为复杂,税率也更高。下面所示的程序文本采用25个if语句的合理方法来计算1978年的美国联邦所得税。税率序列为0.14, 0.15, 0.16, 0.17, 0.18.....。序列中此后的计算大于0.01.有
aijuans1
·
2012-05-12 23:00
编程珠玑
【
编程珠玑
】第二章 二分查找的巧妙应用
一,三个问题A题:给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数。 1、在文件中至少存在这样一个数? 2、如果有足够的内存,如何处理? 3、如果内存不足,仅可以用文件来进行处理,如何处理?答案: 1、32位整数,包括-2146473648~~2146473647,约42亿个整数,而文件中只有40亿个,必然有整数少了。
tianshuai11
·
2012-05-12 00:00
编程
c
算法
String
null
iterator
【
编程珠玑
】第二章 二分查找的巧妙应用
一,三个问题 A题:给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数。 1、在文件中至少存在这样一个数? 2、如果有足够的内存,如何处理? 3、如果内存不足,仅可以用文件来进行处理,如何处理? 答案: 1、32位整数,包括-2146473648~~2146473647,约42亿个整数,而文件中只有40亿个,必然有整数少了。 2、如果采用
aijuans1
·
2012-05-12 00:00
二分查找
【
编程珠玑
】第一章 开篇
一,题目: 如何在1MB的空间里面对一千万个整数进行排序?并且每个数都小于1千万。实际上这个需要1.25MB的内存空间(这里所说的空间是考虑用位图表示法时,每一位代表一个数,则1千万/(1024*1024*8)约为1.25MB )。 1MB总共有838,8608个可用位。所以估计也可以在1MB左右的空间里面进行排序了。 二,分析: 1)基于磁盘的归并排序(耗时间) 2)每个号码采
java-mans
·
2012-05-10 23:00
编程珠玑
【
编程珠玑
】第一章 开篇
一,题目: 如何在1MB的空间里面对一千万个整数进行排序?并且每个数都小于1千万。实际上这个需要1.25MB的内存空间(这里所说的空间是考虑用位图表示法时,每一位代表一个数,则1千万/(1024*1024*8) 约为1.25MB )。 1MB总共有838,8608个可用位。所以估计也可以在1MB左右的空间里面进行排序了。二,分析: 1)基于磁盘的归并排序(耗时间) 2)每个
tianshuai11
·
2012-05-10 23:00
数据结构
编程
c
iterator
存储
电话
上一页
30
31
32
33
34
35
36
37
下一页
按字母分类:
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
其他