自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 收藏
  • 关注

原创 “珠玑之椟”系列简介与索引

系列博文主要目的:  收集《编程珠玑》和《编程珠玑(续)》(以下简称《续》)上的算法和思想,并包括了一些自己的思考和对相关问题的引申,以备复习和查用。内容提要:  主要是算法收集,结合了《程序设计实践》 (Practise of Programming)、《编程精粹:编写高质量C语言代码》(Writing solid code)和《算法导论》的部分相关内容,以及自己的思考,无论你是否看

2013-06-24 16:45:10 1209

原创 Java入门记(二):向上转型与向下转型

在对Java学习的过程中,对于转型这种操作比较迷茫,特总结出了此文。例子参考了《Java编程思想》。    目录几个同义词向上转型与向下转型  例一:向上转型,调用指定的父类方法  例二:向上转型,动态绑定  例三:向上转型,静态绑定  例四:向下转型转型的误区  1.运行信息(RTTI)  2.数组类型  3.Java容器 几个同义词  首

2015-03-01 23:24:30 613

原创 Java入门记(一):折腾HelloWorld

编程语言转到Java时,写HelloWorld的一些实践和研究。

2015-02-22 15:25:41 531

原创 EditPlus远程编辑、语法高亮、编译运行源代码设置

EditPlus远程编辑、语法高亮和自动补全、调整字体大小快捷键、编译运行java代码(及解决“错误: 仅当显式请求注释处理时才接受类名称”问题)

2015-01-14 23:57:33 835

原创 通过JDBC进行简单的增删改查(以MySQL为例)

目录前言:什么是JDBC一、准备工作(一):MySQL安装配置和基础学习二、准备工作(二):下载数据库对应的jar包并导入三、JDBC基本操作(1)定义记录的类(可选)(2)连接的获取(3)insert(4)update(5)select(6)delete四、测试五、代码分析六、思考问题  前言:什么是JDBC  维基百科的简介:

2014-07-28 12:49:33 1075

原创 优化程序性能的几个方法(来自于《深入理解计算机系统》)

这部分的代码出自《深入理解计算机系统》(CS:APP)第五章,其目的是通过手工改变代码结构,而不是算法效率和数据结构优化,提高执行效率。有些编译器在某些优化选项下可能会做出类似的改动。  为了便于以后的查阅和使用,本文进行了摘录和简要分析,其中包含了一些个人理解。对于更深层次的原理如汇编、处理器结构等请参考原书。  大致地,越靠后的代码性能越好,版本6和7性能近似,版本6略好一些。二者均能

2014-04-10 17:44:27 1012

原创 《现代操作系统》精读与思考笔记 第十至十三章

本系列博文是《现代操作系统(英文第三版)》(Modern Operating Systems,简称MOS)的阅读笔记,定位是正文精要部分的摘录和课后习题精解,因此不会事无巨细的全面摘抄,仅仅根据个人情况进行记录和推荐。由于是英文版,部分内容会使用英文原文。  第十章是关于Linux的简略介绍。一百页的篇幅导致介绍不可能面面俱到,也不如专门的Linux书籍(比如LKD、APUE、UNP)精细深入

2014-03-27 15:41:06 903

原创 《现代操作系统》精读与思考笔记 第八章 多处理机系统 第九章 安全

两章虽然篇幅不小,不过都是以介绍为主,这部分不是我读这本书的重点,看得比较粗略,笔记内容也不多,干脆合二为一。第八章 多处理机系统  正如章节名,这章主要是关于多处理机、多计算机、虚拟化、分布式系统。由于非单机的多处理器系统和网络通信关系密切,还讲了一些计算机网络的内容。 1.非阻塞send系统调用的缺点(P556)  虽然非阻塞send()可以立即返回,而不是像阻塞版本那样可

2014-02-08 21:05:51 842

原创 《现代操作系统》精读与思考笔记 第七章 多媒体

第七章部分内容与前几章内容关联很大,比如进程调度、磁盘调度、文件系统,而且多为实现细节,这里不详述。 1.帧数与闪烁(P476)  画面动作的平滑性不是完全由每秒的帧数决定的,而是由每秒不同画面的数目决定的。即使把20帧的视频提高到80帧,而提高方式仅仅是把同样一帧重复播放4次,那么它仍然会不连续。 习题11.In Fig. 7-15, EDF keeps the CPU

2014-02-02 20:42:54 826

原创 《现代操作系统》精读与思考笔记 第六章 死锁

本系列博文是《现代操作系统(英文第三版)》(Modern Operating Systems,简称MOS)的阅读笔记,定位是正文精要部分的摘录理解和课后习题精解,因此不会事无巨细的全面摘抄,仅仅根据个人情况进行记录和推荐。由于是英文版,部分内容会使用英文原文。  课后习题的选择标准:尽量避免单纯的概念考察(如:What is spooling?)或者简单的数值计算,而是能够引起思考加深理解的题

2013-12-11 11:24:23 834

原创 《现代操作系统》精读与思考笔记 第五章 输入/输出

《现代操作系统》系列博文第五篇,本文主要介绍代码描述的三种I/O方式(程序、中断、DMA)、为何厂商宣传与系统显示的磁盘空间不符合、0~5级RAID的比较。

2013-12-09 16:57:46 1316

原创 编写一个make

本文介绍如何编写一个简单的make而非如何编写makefile。通过分析makefile的格式提取其中的文件依赖的处理并存放到数据结构,简单介绍了make使用的时间戳,并使用DFS完成是否存在环和是否需要重新编译的判断,从而提供make的基本功能。源代码已托管至https://github.com/vvy/wmake。

2013-11-22 17:40:10 978

原创 《现代操作系统》精读与思考笔记 第四章 文件系统

本系列博文是《现代操作系统(英文第三版)》(Modern Operating Systems,简称MOS)的阅读笔记,定位是正文精要部分的摘录理解和课后习题精解,因此不会事无巨细的全面摘抄,仅仅根据个人情况进行记录和推荐。由于是英文版,部分内容会使用英文原文。  课后习题的选择标准:尽量避免单纯的概念考察(如:What is spooling?)或者简单的数值计算,而是能够引起思考加深理解的题

2013-11-21 23:42:03 1085

原创 《现代操作系统》精读与思考笔记 第三章 内存管理

《现代操作系统》系列博文第三篇,本文重点介绍TLB的几个常见名、倒排页表的使用情形和原理、LRU算法的译名和内涵探讨及几种实现、NFU算法的实现、页面大小的分析与确定。

2013-11-16 19:29:17 3535

原创 《现代操作系统》精读与思考笔记 第二章 进程和线程

《现代操作系统》的阅读笔记第二篇。本节重点介绍:进程数&I/O频率&CPU利用率的关系、Peterson解法、实时系统任务可调度性的推导、哲学家进餐问题的一个高并行性解等。

2013-11-11 13:17:43 1676 5

原创 手把手教你编写一个具有基本功能的shell(已开源)

本文一步一步地教你如何编写一个具有基本功能的shell,特点是由简单到复杂,逐步添加新的特性,注重思路的展示而不是代码的堆砌,因而不会直接呈现一个完善的版本;同时练习相关的Linux的API,有助于破除对shell的神秘感。源码托管在:https://github.com/vvy/wshell

2013-11-03 13:12:11 2348

原创 《现代操作系统》精读与思考笔记 第一章 引论

本系列博文是《现代操作系统》(Modern Operating Systems)的阅读笔记,定位是正文精要部分的摘录和课后习题精解,因此不会事无巨细的全面摘抄,仅仅根据个人情况进行记录和推荐。本节重点介绍:系统调用的发生过程、shell的基本原理、link原理等。

2013-11-02 18:55:58 1776

原创 笔试面试中常见的位运算用法

本文是在找工作的准备过程中关于位运算的一些积累和记录的整理。

2013-10-10 22:44:18 1159 3

原创 《算法设计手册》杂题3道

《算法设计手册》上正文部分提到的一些有趣问题,由于所处位置与其章节关联不大,因此没有整理到之前的博文中。这里的3道问题是:归纳法找递归函数输出、动态数组的时间复杂度、最小堆第k小的元素与给定x的大小关系。

2013-10-05 11:24:11 1007

原创 编程实践中C语言的一些常见细节

以《C程序设计语言》(K&R)为主线,把《C语言参考手册》和C99标准作为参考和补充,同时考虑到自身平台,对常见的C语言编程细节进行测试和总结,尽量不涉及过于边缘的内容,力图简洁并正确。

2013-09-16 20:29:22 2215

原创 常见的动态规划问题分析与求解

主要是对一些常见的动态规划题目的收集,从硬币找零、编辑距离、lis、lcs到数组最大和/积、0-1背包、工作量划分等一共11个问题以及附加的10个扩展或相关问题的分析与求解,希望能帮助读者增加解题经验,锻炼将原问题分解成子问题并由子问题的解求解原问题的能力。

2013-09-11 10:28:36 2062

原创 全面解析回溯法:算法框架与问题求解

本文以《算法设计手册》第7章回溯法部分介绍的回溯法框架为基础,分析并展示如何运用这个高度抽象的框架解决一般性的问题如组合问题、数独求解、烙饼排序、八皇后等等,同时介绍了回溯法中的剪枝策略,对理解回溯法很有参考价值。另附这一章节的面试题解答。

2013-08-30 11:42:00 2873

原创 《算法设计手册》面试题解答 第五章:图的遍历 附:DFS应用之找挂接点

第五章面试题目只有两道,而且研究价值不大,只做了简单解答。本文重点是介绍利用DFS来寻找无向图上的挂接点,即从连通图中删除后会导致图不再连通的结点。

2013-08-28 12:43:48 1207

原创 《算法设计手册》面试题解答 第四章:排序和搜索

《算法设计手册》(The Algorithm Design Manual)课后面试题和解答。主要内容包括:大量整数排序问题、寻找数组中只出现一次的元素、O(1)时间复杂度获得栈的最小值、最短摘要生成、12个硬币找出假币等问题。

2013-08-26 22:53:39 914

原创 《算法设计手册》面试题解答 第二章

《算法设计手册》(The Algorithm Design Manual)课后面试题和解答。包括:未知大小的集合选取k个元素、数据备份方案、寻找数组最小数时赋值语句执行次数的期望、100层大楼抛大理石(抛灯泡)、电子秤找不足量金币、天平找重球、公司合并方案总数、海盗分赃等。

2013-08-22 11:39:30 1225

原创 《深入理解Nginx》阅读与实践(四):简单的HTTP过滤模块

一个简单的Nginx下HTTP过滤模块的实现,功能为给纯文本响应增加一个文本前缀。

2013-08-21 11:11:15 926

原创 《深入理解Nginx》阅读与实践(三):使用upstream/subrequest访问第三方服务

以《深入理解Nginx》上的实例说明如何借助upstream模块和subrequest这两种全异步方式与第三方服务器进行通信。在原书的源码基础上,对整个流程进行梳理和总结,并根据RFC2616分析了Nginx处理HTTP响应时对响应的划分。

2013-08-20 21:12:00 1721

原创 《算法设计手册》面试题解答 第一章

《算法设计手册》(The Algorithm Design Manual)课后面试题(Interview Problems)和解答。包括:不用*和/做整数除法、25匹马找出前5名问题、以及一些不做解答的估算题的样例。

2013-08-17 22:06:26 1343

原创 《深入理解Nginx》阅读与实践(二):配置项的使用

以前文的HelloWorld为基础进行修改,将其变成读取nginx.conf配置项并输出的程序。帮助读者理清在读取配置项时,存储用数据结构ngx_http_mytest_conf_t、初值生成方法create_loc_conf()、解析方法数组ngx_command_s[]和合并方法merge_loc_conf()的工作方式和联系。

2013-08-14 21:53:57 946

原创 《深入理解Nginx》阅读与实践(一):Nginx安装配置与HelloWorld

最近在读陶辉的《深入理解Nginx:模块开发与架构解析》,一是想跟着大牛练练阅读和编写开源代码的能力,二是想学学Nginx优秀的架构设计,三是想找一个点深入下Linux环境下网络编程的细节。读书的时候自然少不了实际地动手,这个系列的博文便是对学习过程的梳理和动手过程的记录。原书对实际动手时遇到的一些已有提及的细节问题不再赘述。

2013-08-13 20:29:04 1295

原创 使用SftpDrive+SourceInsight阅读开源代码

使用SftpDrive和SourceInsight在Windows图形环境下,对存放在Linux虚拟机及其他支持SSH的主机的磁盘上的代码进行阅读和修改的配置方法

2013-08-09 18:44:16 1222

原创 malloc()参数为0的情况

问题来自于《程序员面试宝典(第三版)》第12.2节面试例题9,主要是结合原书代码和解析,讨论malloc(0)的行为,对原书没说清的地方进行补充。

2013-07-27 16:25:40 1512

原创 《编程之美》4.5磁带文件存放优化:最优解是怎样炼成的

对于《编程之美》4.5磁带文件存放优化一般情况的最优解给与证明,并发掘解法与选择排序的关系。

2013-07-25 15:28:14 1091 1

原创 从《编程之美》买票找零问题说起,娓娓道来卡特兰数——兼爬坑指南

本文来自于《编程之美》4.3节买票找零问题的启发,和网络上多如牛毛的介绍卡特兰数的文章不同,本文的主要目的不是向读者再一次介绍它的性质和应用,也不是相关内容的简单复制粘贴拼凑,而是一个完整的体系,帮助读者跨越《编程之美》留下的陷阱,找寻一般化的卡特兰数,从而解决更一般的问题,并给出证明和程序实现。

2013-07-16 10:01:02 3631 1

原创 《编程之美》3.6判断链表是否相交之扩展:链表找环方法证明

简单介绍判别两个链表在无环/有环情况下是否相交的判别法,并收集了找出相交的第一个节点、求链表倒数第k个结点等相关问题,然后对单链表找环算法和找单链表环入口算法给出形式化的证明

2013-07-14 09:44:22 1309

原创 解答《编程之美》1.18问题1:给所有未标识方块标注有地雷概率

对于《编程之美》上没有提供答案和提示的1.18和4.11两节,本文将综合网络上已有的部分资料,深入挖掘解题思路,并对目前尚未找到满意答案的1.18节问题1给出算法解答。阅读本文需要了解古典概型和组合数的含义,以及扫雷游戏中的各种符号。

2013-07-11 17:40:15 1520

原创 [珠玑之椟]字符串和序列:左移、哈希、最长重复子序列的后缀数组解法、最大连续子序列

本文主要介绍和字符串、序列相关的三大类问题的算法和它们衍生的问题:字符串左移(或称左旋、翻转)、最长重复子序列、最大连续子序列;除此以外,另外附了一段字符串哈希方法作为对字符串操作的补充。虽然标题和文章都很长,但介绍的问题并不多,只是做了较多的延伸和探讨,希望感兴趣的读者不要产生畏惧心理。

2013-07-08 20:52:06 1488

原创 [珠玑之椟]二分思想与分治法、排序思想

本文不局限于具体的二分搜索算法和排序算法,而是提炼其中的思想,并将其应用到其他与它们似乎没有直接关系的问题中,从而获得高效的解决算法。主要解决的问题:线性期望时间的随机元素选择问题、大数据中找出一组重复元素、英文字典求所有变位词、子集元素的最小和。

2013-07-05 09:57:24 1090

原创 [珠玑之椟]浅谈代码正确性:循环不变式、断言、debug

这个主题和代码的实际写作有关,而且内容和用法相互交织,以下只是对于其内容的一个划分。《编程珠玑》上只用了两个章节20页左右的篇幅介绍,如果希望能获得更多的实例和技巧,我比较推崇《程序设计实践》 (Practise of Programming)、《编程精粹:编写高质量C语言代码》(Writing Solid Code)这两本书,只要有一般的C语言基础就能读懂,而且读起来比较快,读完后能提高不少co

2013-07-02 08:57:49 1438 1

原创 [珠玑之椟]随机数函数取样与概率

本节主要受到《编程珠玑》第12章随机取样问题的启发,但不仅仅限于随机取样问题,进一步地,研究讨论了一些在笔试面试中常见的和随机函数以及概率相关的问题。  阅读本文所需的知识:    1.对C语言中或其他语言中等价的rand()、srand()有所了解。本文不讨论种子的设定和伪随机数的问题;    2.中学或以上水平的概率基本概念。   目录 利用随机数函数生成随机数 利

2013-06-29 10:50:09 1586 2

空空如也

空空如也

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

TA关注的人

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