自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

dzyhenry的专栏

Do one thing, do it good.

  • 博客(9)
  • 资源 (19)
  • 收藏
  • 关注

原创 HDOJ 1006 Tick and Tick

这道题比较自己看到后比较迷茫,在网上搜了下,发现大部分都是直接给出代码,具体解题思路不容易一下看明白,自己花了些时间,将思路整理了下。题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1006        这道题目需要求时针、分针、秒针之间的间隔区间大于某个角度(这个角度由用户输入)的总时间占一天之中总时间的比例。可以这样理解:1、

2013-03-29 00:42:19 1937

原创 编程珠玑(2)第八章学习笔记

第八章,作者通过对最大子段和问题的深入探讨,讲解了时间复杂度对算法设计的影响。在实际中,程序实现指定功能可能会有多种方法,此时我们考虑的不仅是功能的实现,还需要在功能实现的基础上考虑算法的时间复杂度。       在最大子段和的问题上,作者先后分析了四种实现方式,对其时间复杂度做了理论分析,并且对不同数量级的数据进行了实际运行时间的统计。通过这样一系列的介绍,作者总结了几个重要的算法设计技术:

2013-03-26 13:14:46 703

原创 编程珠玑(2)第七章 学习笔记之粗略估算

通过简单的粗略估算我们能够得到接近需要复杂计算的真实值,实在是让人惊叹估算的魅力。        在日常生活中,我们常常会遇到需要快速算出粗略值的时候,以便对问题有一个大体的把握,这个时候粗略估算的技巧就显得十分重要了。本章介绍了“量纲检验”、“模9法”、“72法则”、“Little定律”等,而更多的技巧需要我们在日常生活中根据实际问题运用常识开动脑筋来把握。        量纲检验:即在

2013-03-12 22:12:15 1220

原创 编程珠玑(2)第六章笔记

第六章通过介绍Andrew Appel解决重力场中多个物体相互作用的经典“n体问题”,形象地表现了我们对程序的性能进行提高的过程。        Appel主要通过五个层面来进行项目的性能改进:1、算法和数据结构。2、算法调优。3、数据结构重组。4、代码调优。双进度浮点数可改为单精度;某些函数可以改用汇编语言实现。5、硬件。使用性能更好的硬件。        看完本章,

2013-03-12 21:44:41 1152

原创 编程珠玑(2)第五章 学习笔记

在前四章中,分别讲述了:通过深入挖掘定义正确的问题;通过仔细选择算法和数据结构平衡真正的需求;通过程序验证技术写出优雅代码,并验证程序的正确性。          在这一章中,作者主要介绍了验证程序的一个重要方法:“脚手架(scaffolding)”。在编完代码后,我们使用脚手架来探察代码,以便更彻底地验证代码。作者介绍了如何根据程序的逻辑,在适当的代码位置添加“print”函数,输出变量,根

2013-03-11 16:22:13 1113

原创 编程珠玑(2)第四章阅读笔记

读完第四章,依然感觉迷茫,作者举的例子似乎很简单,但其中蕴含着深刻的编程原理,即程序验证——如何编写正确的程序。          作者在本章语重心长地强调了程序验证对于正确地编写程序的重要性。他说:“编写简单的代码通常是得到正确程序的关键。当我们编写程序的时候,经常会出现这样的情况,”困难“的部分第一次就可以正确运行,而那些”容易“的部分往往会出毛病。”我自己在编程过程中,也有这种感受,有时

2013-03-07 23:26:30 898

原创 编程珠玑(2)第三章阅读笔记

看完第三章,感觉比较迷茫,抓不住什么实在的东西。           第三章核心是“数据决定程序结构”。大致意思就是根据数据的形式,安排合适的数据结构,而成形的数据结构基本也决定了程序的结构。           本章最后列出了四条编程的原则,在这里赘述下:           1、使用数组重新编写重复代码。           2、封装复杂结构。           3、尽可

2013-03-07 22:34:58 729

原创 编程珠玑(2)第二章学习笔记

第二章提出了三个问题。                问题A:个定一个最多包含40个亿随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数。在内存足够和只有几百个字节的内存的情况下,分别该如何解决这个问题。        问题B:将一个n元一维向量向左旋转(即循环移位)i个位置。例如,当n=8,且i=3时,向量abcdefgh旋转为defghabc。能否使用数十个

2013-03-06 14:54:37 1117

原创 编程珠玑(2)第一章学习之位图排序

上研快半年了,由于第一年属于上课阶段,导师也没怎么管,感觉自己还是本科那种碌碌无为的状态,知识停于书本,没有真正写出过什么像样的产品。叫我如何不焦虑!焦虑也没办法啊,所以就到网上买了本《编程珠玑》(第2版),下决心认认真真学习。对于我这样愚笨的人虽不见得会有奇效,但总比继续停在原地的好。于是,我打算以此博客为证,在今年7月之前(也就是2013年6月31日为止):将每一章(总共十五章)的问题用此博客

2013-03-02 02:49:43 811

spidermonkey1.7.0

Spidermonkey, a JavaScript engine on Linux.After downloading, unzip it. Do as follows: wget http://ftp.mozilla.org/pub/mozilla.org/js/js-1.7.0.tar.gz -O- | tar xvz cd js/src make -f Makefile.ref sudo mkdir -p /usr/include/smjs/ -v sudo cp *.{h,tbl} /usr/include/smjs/ -v cd Linux_All_DBG.OBJ sudo cp *.h /usr/include/smjs/ -v sudo mkdir -p /usr/local/{bin,lib}/ -v sudo cp js /usr/local/bin/ -v sudo cp libjs.so /usr/local/lib/ -v

2014-11-23

linux spidermonkey1.7.0

Spidermonkey 1.7.0 for Linux。解压后安装方法: wget http://ftp.mozilla.org/pub/mozilla.org/js/js-1.7.0.tar.gz -O- | tar xvz cd js/src make -f Makefile.ref sudo mkdir -p /usr/include/smjs/ -v sudo cp *.{h,tbl} /usr/include/smjs/ -v cd Linux_All_DBG.OBJ sudo cp *.h /usr/include/smjs/ -v sudo mkdir -p /usr/local/{bin,lib}/ -v sudo cp js /usr/local/bin/ -v sudo cp libjs.so /usr/local/lib/ -v

2014-11-23

spidermonkey1.7.0 for linux

spidermonkey,Linux中的JavaScript运行环境。解压后安装方法: cd js/src make -f Makefile.ref sudo mkdir -p /usr/include/smjs/ -v sudo cp *.{h,tbl} /usr/include/smjs/ -v cd Linux_All_DBG.OBJ sudo cp *.h /usr/include/smjs/ -v sudo mkdir -p /usr/local/{bin,lib}/ -v sudo cp js /usr/local/bin/ -v sudo cp libjs.so /usr/local/lib/ -v

2014-11-23

基本排序算的实现

用C/C++复习一下常见的几种排序算法。是自己一行一行敲出来的代码。

2014-07-23

模式识别ISODATA算法C++实现

ISODATA算法是模式识别课程中一个比较重要的动态聚类算法。本程序模拟了其分类过程。由于程序的开发平台是Visual Studio2012 ,对比较旧的版本可能无法兼容,解决办法是:把代码复制出来自己重新建立工程实现。

2013-04-20

K-Means聚类分析算法C语言实现

模式识别课程中,动态聚类算法中比较容易的K-Means聚类分析的C语言实现。

2013-04-08

二分搜索的递归和非递归实现

二分搜索的递归和非递归实现。比较简单的实现。

2013-03-07

数组循环左移

将一个n元一维向量向左旋转(即循环移位)i个位置。例如,当n=8,且i=3时,向量abcdefgh旋转为defghabc。能否使用数十个额外字节的存储空间,在正比于n的时间内完成?

2013-03-06

编程珠玑之位图排序

输入:一个最多包含n个正整数的文件,每个数都小于n,其中n=10^7,。如果在输入文件中有任何整数重复出现就是致命错误。没有其他数据与该整数关联。 输出:按升序排列的输入整数列表。 约束:最多有(大约)1MB的内存空间可用,有充足的磁盘存储空间可用。运行时间最多几分钟,运行时间为10秒就不需要进一步优化了。

2013-03-02

分治法求逆序数

求逆序数的方法很多。最容易想到的办法是分别对序列中每一个元素求其逆序数,再求所有元素的逆序数总和,易分析得出这样的方法其时间复杂度为O(n2)。而这里采用的分治法求逆序数,其时间复杂度为O(nlogn)。

2013-02-02

图的基本操作

整理了一下图的基本算法,包括图的深度优先遍历、广度优先遍历、拓扑排序、三种单源最短路径(Bell-Ford、Dijkstra、有向无回路最短路径算法)、关键路径。

2012-12-11

八数码问题A*算法C语言实现

八数码问题,实际就是在一个3X3的九宫格内,其中一个格子为空,其余八个格子分别用1-8的数字填充,这八个数字在九宫格内所占格子的位置可以任意。我们所求就是在两种占位置的情况下,如何从其中一种情况,转移到另一种情况?当然,限制条件是:移动过程中,只能是空格周围的格子向空格移动。(有点儿类似我们小时候玩的一种移动滑块拼图的游戏。)

2012-11-22

教室课程调度问题的两种解法(区间着色问题)

问题描述:假如要用很多个教室对一组课程进行调度,每节课程都有其开始时间和结束时间,我们希望使用尽量少的时间来调度所有的课程,请给出调度算法?

2012-11-17

01背包问题

01背包问题是个老生常谈的关于动态规划的问题。 首先问题描述:给定n个物品,每个物品的重量是wi,每个物品的价值是pi,背包的最大容量是M,求如何装入这些物品才能使背包里的价值量最大?

2012-11-14

最长公共子序列(LCD)

在最长公共子序列问题中,给定了两个序列 X=<X1, X2, ..., Xm>和Y=<Y1, Y2, ..., Yn>,希望找出X和Y的最大长度公共子序列。LCS是动态规划算法中比较经典的问题。

2012-11-12

排序算法的分析

C语言实现快排、归并排序、快排改进算法的递归和非递归算法 。其实以上算法的原理都很简单。在本科阶段,我们对这几个算法的基本原理都应该十分熟悉,但对于我,真正落实到是实现这几算法,之前几乎没有试过。现在刚上研一,算法课的第一次作业中,要求我们将这几个算法实现,对这几个算法,在输入规模不同的情况下,比较其实际工作效率。

2012-11-10

查找第K个元素

已知两个等长的升序整数序列{a1, a2, ..., ak}和{b1, b2, ..., bk},求序列{ai+bj}的前k小元素,其中1≤i≤k且1≤j≤k,要求时间复杂度尽可能低。 思路:将(1,1,a1+b1)加入一个小根堆 while (堆非空且出堆的元素总数少于k个) 弹出堆顶元素(x, y, v) 将(x+1,y,a{x+1}+b{y})和(x,y+1,a{x}+b{y+1})加入堆中 (堆内元素间按v比较大小)

2012-11-10

EditDistance

编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。

2012-11-10

IP地址合法性检验

输入一个ip地址,根据其输入的格式和内容,看是否符合ipv4的地址规范,检验其合法性。

2012-11-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除