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
编程珠玑
编程珠玑
----快速排序的变形
一般课本上关于快速排序给出的程序代码形式为intquicksort(vector&v,intleft,intright){if(leftkey){high--;}v[low]=v[high];while(low而
编程珠玑
给出了另一种变体
cauahu
·
2016-05-26 10:17
算法
【读薄《
编程珠玑
》】壹 开篇
这篇文章是《读薄》系列博客的第一篇,在这篇文章中,我总结了在书中出现的一些问题以及一些解决方案。问题集合0x01:一个最多包含n个正整数的文件,每个数都小于n,其中n=107,并且没有重复。最多有1MB内存可用。要求用最快方式将它们排序并按升序输出0x02:使用位逻辑运算来实现位向量0x03:尽可能快的生成位于0~n-1之间的k个随机不同顺序的整数0x04:如果在问题0x01中需要1.25MB的内
冰水比水冰
·
2016-05-19 19:27
算法
算法与数学
算法与数学
神奇的排序
代码://此方法只能对互不相同的正整数排序,也成为神奇的排序,从
编程珠玑
中看到的 publicclassmagicSort{ publicstaticvoidmain(String[]args){ /
u012150590
·
2016-05-16 15:00
《
编程珠玑
》备忘录(开篇)---当每个整数多次出现时
在开篇的习题部分,作者提出了一个延伸问题,即当每个整数最多出现10次的时候,这个排序问题应该如何解决。尽管这次作者大方地没有限制我们可以使用的内存,但是在设计该程序时还应依照勤俭持家的原则:一个硬币掰开用。由于一个整数最多出现10次,那么我需要4位(bits)来对每个整数出现的频数进行统计。按照一般的设定,一个字符(char)往往包含了8个位,联想到作者之前使用位逻辑运算实现位向量的方法,我在这里
zgzzbws
·
2016-05-09 22:00
C++
编程珠玑
bit
sort
1003. 我要通过!(20)
如果清楚了问题,问题就解决了一半·······························《
编程珠玑
》题目描述:“答案正确”是自动判题系统给出的最令人欢喜的回复。
iking83
·
2016-05-09 21:00
C++
算法
pat
我的5月书单
《浮生六记》沈复《白鹿原》陈忠实《写在人生边上》钱钟书《写给大家看的设计书》RobinWilliams《
编程珠玑
》第2版JonBentley看书就跟吃喝拉撒一样,它并不格外高贵,却也必不可少。
yeqiuzs
·
2016-05-06 17:00
生活
计算机经典算法汇总
》《人月神话》《计算机程序设计艺术》《编译原理》(龙书)《深入浅出设计模式》《哥德尔、艾舍尔、巴赫书:集异璧之大成》《代码整洁之道》《EffectiveC++》和《MoreEffectiveC++》《
编程珠玑
shuimanting520
·
2016-05-06 08:00
算法
计算机
[置顶] 关于求N以内素数的python实现以及优化方法
大纲:摘要一、素数的定义二、N以内素数常用实现方法三、优化方法原理层面代码层面range和xrangewhile1和whileTrue真的重要吗摘要 本文主要是参考《
编程珠玑
-续订版》第一章关于求素数的解释
wxx634897019
·
2016-05-05 17:00
编程珠玑
问题描述你有一条项链,它由N个随机排列的红、白和蓝色的珠子组成(3#include #include intmain() { chartem[710]; inti,j,n,p,m,k=1; chartemp,linshi; intcountleft,countright,max=0,countleft1,countright1,count; scanf("%d",&n); getchar();
Kaiyang_Shao
·
2016-05-04 20:00
把《
编程珠玑
》读薄
作者:Hawstein出处:http://hawstein.com/posts/make-thiner-programming-pearls.html声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|CreativeCommonsBY-NC-ND3.0 ,转载请注明作者及出处。开篇具体化你的解决的问题。下面是A和B的对话。A:我该如何对磁盘文件进行排序? B:需要排序的内容是什
hk2291976
·
2016-04-28 22:00
编程珠玑
之第二章
1.问题1问题描述:给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数(在文件中至少缺失一个这样的数,为什么?).(1)在具有足够内存的情况下,如何解决该问题?(2)如果有几个外部的"临时"文件可用,但是仅有几百字节的内存,又该如何解决该问题?问题思路:由于2^32=4294967296,超过给出的40亿,因此必定存在32位的整数不在此文件中.(1)当内存足够的
sinat_17451213
·
2016-04-27 15:00
旋转
二分
编程珠玑
第二章总结:
[0]:问题A:给出一个顺序文件,它最多包含40亿个随机排列的32位整数。找出一个不在文件中的32位整数。分析:如果内存足够的话,可以采取第一章的位图排序法,以O(n)的效率就可以解决。如果内存不足的话,但是有几个外部文件可以存储数据,那么就可以采用二分查找的思想来解决问题!!!这里的思路比较巧妙,它不是通常意义上的二分查找,但是思维模式很相似.我们可以通过扫描输入文件,将第一位是0的写入一个文件
pp634077956
·
2016-04-26 14:00
编程珠玑
顺序文件
顺序文件概念1.顺序文件 顺序文件是指按记录进入文件的先后顺序存放、其逻辑顺序和物理顺序一致的文件。 注意: 一切存储在顺序存取存储器(如磁带)上的文件,都只能是顺序文件。2.顺序文件分类(1)顺序有序文件 记录按其主关键字有序的顺序文件为顺序有序文件。(2)顺序无序文件 记录未按其主关键字有序排列的顺序文件为顺序有序文件。 注意: 为提高检索效率,常将顺序文件组织成有序文
iking83
·
2016-04-25 22:00
算法
编程珠玑
旋转字符串
问题描述请将一个具有n个元素的一维向量向左旋转i个位置。例如,假设n=8,i=3,那么向量abcdefgh旋转之后得到向量defghabc。简单编码使用一个具有n个元素的中间向量分n步即可完成此作业。你可以仅使用几十字节的微小内存,花费与n成比例的时间来旋转该向量吗?解决思路方案一:将向量x中的前i个元素复制到一个临时数组中,接着将余下的n-i个元素左移i个位置,然后再将前i个元素从临时数组中复制
iking83
·
2016-04-25 16:00
算法
堆
搞得好像多么高大上的样子1.最大堆:父节点的值大于左右孩子节点的值的完全二叉树2.最小堆:父节点的值小于左右孩子节点的值的完全二叉树瞬间转化成二叉树的问题了以下是
编程珠玑
的关于堆的代码://最大堆实现
u014787301
·
2016-04-21 22:00
算法
剑指offer-面试题42:翻转单词顺序VS左旋转字符串
思路:《
编程珠玑
》第二章有类似题目,思路就是先翻转每个单词,然后再翻转整体。
moses1213
·
2016-04-13 17:00
编程珠玑
_磁盘中无重复大量整数数据排序限制内存借助位图
/****@authorzhangguangsen*无重复大量数据排序借助位图思想(本程序用的是Byte)*例如从磁盘文件中导入10000条无重复电话号码集然后经过程序排序完成后导回磁盘文件中*该程序只是一个核心思想的Demo,**/publicclassMagicSort{publicstaticvoidmain(String[]args){Scannersc=newScanner(System
BIG_monkey123
·
2016-04-10 12:27
算法
编程珠玑
学习笔记(第一章)
本章主要讲述了磁盘排序算法和针对特殊数据我们可以作出的特殊算法.习题2:主要思路就是将整数进行映射,a[i1>self.__shift]|=1>self.__shift]&1=5000000],5000000,10000000) end=time.clock() print(end-start)习题6,假如每个号码会重复10次,应该怎么做?解决方法是用4位来表示一个数,最多可以表示15次重复出现.
pp634077956
·
2016-03-31 23:00
<
编程珠玑
>笔记 (一) 问题-算法-数据结构
1 精确描述问题 第一章强调的重点在于”精确的描述问题“,这类似程序开发的第一步--需求分析。1.1 Preciseproblemstatement1)input:afilecontainingatmost107positiveintergers(each1MB) 1.3 Implementationsketch weusebitmapdatastructuretorepresentthefi
胡马依北风
·
2016-03-25 16:00
<
编程珠玑
>笔记(三) 四条原则
第三章作者重在阐述一种编程观念,即“datadoesindeedstrctureprograms” 这一章貌似没什么干货,只好把作者的几个例子贴出来,反复看看了。1 Asurveyprogram TotalUSCitiPermVisaTempVisaMaleFemaleAfricanAmerican12891239172684593MexicanAmerican6755778011448219N
胡马依北风
·
2016-03-21 00:00
<
编程珠玑
>笔记(三) 四条原则
第三章作者重在阐述一种编程观念,即“datadoesindeedstrctureprograms” 这一章貌似没什么干货,只好把作者的几个例子贴出来,反复看看了。1 Asurveyprogram TotalUSCitiPermVisaTempVisaMaleFemaleAfricanAmerican12891239172684593MexicanAmerican6755778011448219N
胡马依北风
·
2016-03-21 00:00
<
编程珠玑
>笔记(二) 三个算法
在第二章里,作者提出了三个问题,然后慢慢引出对应的算法实现。1 Binarysearch二分查找 Givenasequentialfilethatcontainatmost4x10932-bitintegersinrandomorder,finda32-bitintegerthatisnotinthefile. Howwouldyousolvethisproblemwithamplemainme
胡马依北风
·
2016-03-20 05:00
<
编程珠玑
>笔记(二) 三个算法
在第二章里,作者提出了三个问题,然后慢慢引出对应的算法实现。1 Binarysearch二分查找 Givenasequentialfilethatcontainatmost4x10932-bitintegersinrandomorder,finda32-bitintegerthatisnotinthefile. Howwouldyousolvethisproblemwithamplemainme
胡马依北风
·
2016-03-20 05:00
<
编程珠玑
>笔记 (一) 需求分析
作为开篇第一章,作者强调的重点在于如何”精确的描述问题“,这也是所有程序开发的第一步--需求分析。1 Preciseproblemstatement1)input Afilecontainingatmost107positiveintergers(each1MB) 3 Implementationsketch1)bitmap weusebitmapdatastructuretorepresen
胡马依北风
·
2016-03-16 21:00
二分查找算法在C/C++程序中的应用示例
二分查找算法的思想很简单,《
编程珠玑
》中的描述:在一个包含t的数组内,二分查找通过对范围的跟综来解决问题。开始时,范围就是整个数组。通过将范围中间的元素与t比较并丢弃一半范围,范围就被缩小。
wuzhekai1985
·
2016-03-15 14:04
Head First Design pattern Observer
翻开HeadFirst设计模式看了下,第一章观察者模式,看地不甚明了,学java已经有一段时间了,这是我第三次翻看这本书,前些日子,买的
编程珠玑
,与程序员思维也都没能读下来,于是从网上了找了段代码看了下
java_goodstudy
·
2016-03-10 16:00
设计模式
【
编程珠玑
】自己实现位向量类
最近开始看《
编程珠玑
》了,传说中的“看起来很眼熟啊,而过几分钟后又得出结论——以前从来没读过”,刚看了第一章的内容,作者思考问题的方式和角度确实很好,前言提示说不要看太快,习题要一道一道跟着做,自己做过再去看答案
Jacketinsysu
·
2016-03-10 11:00
编程
编程珠玑
windows下实现win32俄罗斯方块练手,编程的几点心得
编程珠玑
2阅读笔记:1.使用c语言性能监视器,完成对代码的调优工作2.关联数组: 拓扑排序算法,可以用于当存在遮挡的时候决定三维场景的绘制顺序。
wangyaninglm
·
2016-03-05 22:00
【VS开发】获取CPU tick tick 周期
多核处理器时,__rdtsc()的使用-
编程珠玑
第一章根据书中提供的代码清单1-5,可以完成对于多核处理器的cpu占用率的控制。
Zhang_P_Y
·
2016-03-03 15:01
VS开发
2016年2月书单推荐
穷人在怀疑中拒绝,富人在怀疑中了解硬能力就是实实在在有对应的技术对应的能力
编程珠玑
有助于锻炼思维,偏重讲思考过程及算法。通过正确的方法来做正确的事。适合精读、思考。
庄君祥
·
2016-03-01 11:00
蓄水池抽样 - Reservoir Sampling
第一部分:问题描述 问题起源于
编程珠玑
Column12中的题目10,其描述如下: Howcouldyouselectoneofnobjectsatrandom,whereyouseetheobjectssequentiallybutyoudonotknowthevalueofnbeforehand
coodoing
·
2016-02-21 07:15
《
编程珠玑
》之快速排序
1.一种简单的快速排序快速排序最重要的就是partition函数,即选定某一个数后,使得所有小于该数的数字都在其左侧,大于该数的数字都在其右侧。本节给出的算法过程如下:我们将需要划分的目标区间定位[l,u]。首先给定目标值t=x[l]。我们需要重新组织x[l...u],使得所有小于t的元素都在m的一端,所有大于t的元素在m的另一端。初始时m=l,我们将i从l+1一直遍历到u,代码在检测第i个元素时
书呆子的复仇
·
2016-02-04 16:50
取样问题——《
编程珠玑
》学习笔记
关于具体问题描述,与详细分析过程请看《
编程珠玑
》第十二章,这里只记录我用Java代码做的实现,以及主要思路此例,可以用来生成一个随机样本文件,位图排序中可以使用二、Java代码实现packagedemo.rand
supercooly
·
2016-02-01 14:00
java
打乱顺序
取样问题
随机取样
位图排序——《
编程珠玑
》学习笔记
一、问题场景对八位的无序电话号码文件进行排序,内存有限,不能将文件直接读取到内存中,所以不能使用冒泡、快速等算法进行排序,而硬盘有足够的空间,如何做?二、Java代码实现packagedemo.sort; importjava.io.BufferedWriter; importjava.io.File; importjava.io.FileReader; importjava.io.FileWr
supercooly
·
2016-02-01 13:00
java
排序
内存
位图
我的书单
《
编程珠玑
》《JAVA从入门到精通》《编程之美》《JAVA程序员的基本修养》《阿哈,算法》《数据结构与算法分析JAVA语言描述》《HeadFirst设计模式》《设计模式可复用面向对象软件的基础》《深入理解
singit
·
2016-01-26 18:00
堆和优先队列
学习数据结构的时候就学习过堆,不过忘了很多了,《
编程珠玑
》里也有这一章,因此重新总结一下。堆的两个性格:(1)顺序性质:任何结点的值都小于或等于子结点的值。
moses1213
·
2016-01-24 16:00
linux c++ 服务器端开发面试必看书籍
一、算法基础系列数据结构基础(C语言版)》朱仲涛译《剑指Offer》《编程之美》《
编程珠玑
》《Care
强哥之神
·
2016-01-24 16:09
Linux
面试
C++
位图排序
在《
编程珠玑
》上看到的,开篇第一个问题,有很多数,小于一个MAXNUM,没有重复的,怎么排序最快。答案是位图排序.如果某一位不为0,那么这一位存代表一个数,位数(在序列中的位置)代表这个数。
wswang
·
2016-01-19 22:00
二分查找讲解
原创地址:http://www.cnblogs.com/segeon/archive/2012/07/27/2612361.html很多书上都会讲到二分查找(数据结构与算法教材、《编程之美》、《
编程珠玑
eagle_or_snail
·
2016-01-18 12:00
二分查找
spark
编程珠玑
-RDD篇
RDD有关RDD的基础概念请阅读spark官方文档,或网上搜索其他内容。本文完全是实战经验的总结。惰性求值RDD的转换操作都是惰性求值的。惰性求值意味着我们对RDD调用转化操做(例如map操作)并不会立即执行,相反spark会在内部记录下所要求执行的操作的相关信息。把数据读取到RDD的操作同样也是惰性的,因此我们调用sc.textFile()时数据没有立即读取进来,而是有必要时才会读取。和转化操作
venps
·
2016-01-18 11:00
spark
大数据
RDD
飞龙的程序员书单 – 思想、工程、架构、职业发展
思想
编程珠玑
编程珠玑
,字字珠玑。这本书并不单纯讲解算法,而是由一系列实际问题切入,引导读者理解这些问题并学会解决方法,使用现有的算法,或者程序设计技巧解决问题。
飞龙
·
2016-01-16 00:00
程序员书籍
职业发展
编程思想
工程师
我们聊聊快排吧...
最近一直在看《
编程珠玑
》第二版这一本书,里面的东西真的很实用,以前也看过不少讲解快排的书,但是在
编程珠玑
上看到的讲解是我见过最好理解,也是最详细的,从效率和空间以及实现等各个方面都做了详细说明,并比较了几种变形的快排的效率
代码的搬运工
·
2016-01-15 18:00
必读技术书籍
1、java编程思想2、headfirst设计模式3、敏捷开发原则与实践4、重构改善既有代码设计5、《spring技术内幕》6、7、8、9、10、代码大全211、代码整洁之道12、算法导论13
编程珠玑
14
chenjian98
·
2016-01-13 19:36
个人成长记录专栏
编程珠玑
笔记~排序10^7个数
题目要求:对小于10000000的n个存在文件中的整数排序,要求:每个整数最多出现一次,1MB可用内存,时间至多几分钟,运行时间10s左右最好。Solution:*方法一、1MB/4B=262144个整数,若要用文件排序大约40个通道,读文件40次,我们知道*相对于内存操作,读磁盘的操作是相当慢的。*方法二、用字符串存储每一个整数(一个数7个字节),对字符串排序,但是还是要读大于*40次的磁盘。*
xiaoranone
·
2016-01-05 22:59
重新认识二分查找算法
《
编程珠玑
》里提到用循环不变式的三个性质来检验算法的正确性,即:1.初始化:保证循环开始前初始条件是正确的。
moses1213
·
2016-01-04 13:00
[置顶] 我的书单
深入理解计算机系统》《ThinkinJava》《深入理解JVM虚拟机》《EffectiveJava》《数据结构与算法分析》《代码整洁之道》《编码:隐匿在计算机软硬件背后的语言》《重构:改善既有代码的设计》《
编程珠玑
jason0539
·
2016-01-03 15:00
《读
编程珠玑
有感》——细节处见技术
《读
编程珠玑
有感》——细节处见技术众所周知,《
编程珠玑
》是一本程序员的必读图书,作为一名程序员的我,当然不能错过。最近粗读了两遍,最大的感受就是,这是一本值得逐字逐句推敲学习的好书。
u3
·
2015-12-28 17:00
计算机相关经典书籍汇总
CprimerplusTheCprogramminglanguageC和指针C专家教程C陷阱与缺陷c语言解惑C标准库你必须知道的495个C语言问题4.算法与数据结构数据结构与算法分析—C语言描述算法导论
编程珠玑
编程珠玑
闻波
·
2015-12-11 21:00
hadoop相关整理
1.数据结构与算法1.1书籍(1)算法导论(2)编程之美(3)
编程珠玑
(4)数据结构(C语言版)(5)CareerCup.Cracking.the.Technical.Interview.Ed4.2010
qq_26562641
·
2015-12-09 17:00
《
编程珠玑
,字字珠玑》读书笔记完结篇——AVL树
《
编程珠玑
,字字珠玑》910读书笔记——代码优化更新了,做了点关于“哨兵”的笔记。在这篇文章的末尾,笔者还加了对引用调用的“大彻大悟”。4篇读书笔记:全在这里AVL树学习数据结构的时候,有过一次
·
2015-12-09 10:08
读书笔记
上一页
4
5
6
7
8
9
10
11
下一页
按字母分类:
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
其他