自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

海风林影

一个代码可以创造一个世界,也能毁灭一个世界~

  • 博客(79)
  • 资源 (8)
  • 收藏
  • 关注

原创 Linux 内核讨论课记录

以下为每周六实验室内核讨论课我所主讲的主要内容,在百度文库和CSDN下载频道中上传有我所讲的PPT原稿。现对以前做个补充,以后每次讲完之后及时更新。9月29日星期六上午:主讲进程描述符结构体task_struct数据结构,由于task_struct这个结构体是系统感知进程存在的唯一标志,linux内核涉及进程和程序的所有算法都是围绕这个数据结构建立的,里面存在上百个字段,表

2012-11-06 12:07:48 927

原创 关于初次使用Oracle若干问题集锦

想起一年前多安装的Oracle一直没使用,现在准备使用时,遇到各种问题,遇到了再网上找解决办法一个个解决了,小记一下以防今后忘记:一、 Oracle下忘记普通用户的密码以超级管理员sys登录,再修改。在Windows命令行下:1. 进入Oracle命令行:sqlplus2. 登入数据库:用户名:sys密码:sys as sysdba3. 修改密码:ALTER

2012-06-14 17:30:18 1512

原创 上班第一天

今天是第一天上班,感觉还不错。上个星期二“追随”某人去了合肥某公司面试,第一次尝试到这种面试,不问出身、不问兴趣爱好、不问大学生活经历,直接给了几道编程题和一台PC,就让你写程序。于是怀着激动的心情,开始了我两个月以来最全新的一天。面试的那天公司还在五里墩那边,不过这两天公司搬家了,搬到合肥西站附近的一栋小别墅中。环境算还是很不错了,重要的是离学校近了,坐公交不用再转车了。

2012-05-28 23:18:38 1960

原创 经典题:一个整数分解为连续正整数之和

为了找份暑期实习生的工作,今天去某公司面试。很喜欢这样的公司,首先不问出身、不问爱好,直接给你一台电脑,几道编程题目,让你写程序。其中有道题目是将一个整数分解为连续正整数之和,如15可以分解为:15 = 1 + 2 + 3 + 4 + 515 = 4 + 5 + 615 = 7 + 8这道题,我用最死板的方法给编出来了。输入数n,设置起始位置i,再遍历连续正整数的长度k,由公式

2012-05-22 22:37:19 3176

原创 To Be a Coder or Not, That's a Question!

Jeff Atwood 5月15日在其博客CODING HORROR上发表的一篇文章Please Don't Learn to Code,引起广大程序员的响应,纷纷发表文章提出自己的观点,如设计师Sacha Greif 发表的Please Learn to Code;Zen的please don’t learn to code but give it a try;以及Zed Shawnf的Pl

2012-05-17 16:12:59 1541

原创 毕业设计那点事

最近总会听到这些声音:有人说纯软件毕业设计难做,数据库不知道怎么设计,还要写代码;有些人就笑了,说当初选择硬件毕业设计就是个悲剧;我听到了,也笑了....尼玛,谁有软硬通吃的毕业设计坑爹呀!每次有人问我毕设题目是什么,我都还得去毕设管理系统去看看,然后说“室内自主导航机器人的关键技术研究”,这题目听着多霸气啊...额...我对毕设任务理解用下面的框图很清晰地能表现出来:

2012-05-07 19:59:43 1987

原创 大学总结之图书馆情结

喜欢大学的图书馆,不管是新区还是南区,从大一的时候就对图书馆有特殊的情结:        刚进大学那会学程序设计,很多东西听不懂,当时非常着急,偶然一个机会,在图书馆阅览室发现好多C语言书,于是就每天带着一个本子,找来一堆的书,对照着看,记了一堆语法规则以及程序。这本看不懂就换一本看,连续了一个多星期,突然发现自己通窍了。那时感觉图书馆东西挺多的.....       大一下学期,特别空虚

2012-05-04 22:08:08 1541 1

原创 通过minicom传送文件的相关配置及使用方法

写一下我使用串口向开发板传送文件中遇到的问题及解决办法:使用的软硬件环境:虚拟机:VMware® Workstation 8.0.1Linux操作系统:Fedora 9开发板:mini6410 下面使用通过串口终端minicom传送文件到开发板上:1. USB 串口无法识别的问题:我的笔记本没有RS232接口,只好用USB转串口,再通

2012-05-02 10:28:43 11856 1

原创 编程痛并快乐着

《人月神话》中提到编程这个职业时,列出编程给人带来乐趣的理由,同时也谈到这个职业也给人很多苦恼,下面是这篇文章的观点,觉得写的不错:快乐:编程的乐趣是一种创建事物的纯粹快乐。 快乐来自于开发对其他人有用的东西。 编程的过程体现了魔术般的力量。 学习新事物的乐趣,源于工作的非重复特性。 还来自于工作在如此易于驾驭的介质上。总之,编程非常有趣,在于它不仅满足了我们内心深处进行创造的渴望

2012-04-26 21:14:11 1168

原创 大学总结之影响我最深的十本书

今天是“世界读书日”,前几天微博上转发非常多的一条微博:“一日不读书,无人看得出;一周不读书,开始会爆粗;一月不读书,智商输给猪”,确实阅读是很重要的,对此我深有体会。大学四年我读了大量的书,其中大多是计算机技术方面的书,可以说从这些书中我打牢了我专业的基础,是我大学最大收获之一。今晚回头翻看了一下图书馆的借书历史记录,我自己也被吓到了,到目前为止竟然借了339本之多,主要是在大二和大三借

2012-04-23 23:14:56 4559 2

原创 20. 协助完成“返回值优化(RVO)”

[19]最后曾提到了在函数通过传值方式(by value)返回一个对象时,不可避免地要生成一个临时对象,这会严重影响到程序的效率,如下例计算两个分式的乘积:class CRational{public: CRational(int numerator, int denominator) { this->numerator = numerator;

2012-04-19 11:50:31 1003 1

原创 19. 了解临时对象的来源

什么是临时对象?C++真正的临时对象是不可见的匿名对象,不会出现在你的源码中,但是程序在运行时确实生成了这样的对象。通常出现在以下两种情况:(1)为了使函数调用成功而进行隐式类型转换的时候。传递某对象给一个函数,而其类型与函数的形参类型不同时,如果可以通过隐式转化的话可以使函数调用成功,那么此时会通过构造函数生成一个临时对象,当函数返回时临时对象即自动销毁。如下例:

2012-04-18 23:00:27 1677

原创 16. 谨记80-20规则

80-20 法则一个程序 80% 的资源用于20% 的代码身上。这里的资源包括:执行时间、内存消耗、磁盘访问、维护成本.....这说明了:软件的整体性能几乎总是由其构成要素(代码)的一小部分决定。也给我们指明了提升软件性能的一个方向:我们只要找到这20%的代码,并进行相应的优化,那么我们程序的运行速度就可以有较大的提高。而怎样找到这20%的代码,有两种不

2012-04-17 14:26:29 1396

原创 7. 千万不要重载&& ,|| 和,操作符

C/C++语言对于逻辑表达式具有“逻辑短路”的性质,即一旦确定了真假值,表达式中即使有尚未检查的部分,都将返回。如:char *p;if ((p != NULL) && printf("%c", *p)) ... //(1) int rangeCheck(int index){ if ((index upperBound)

2012-04-16 17:39:53 959

原创 6. 区别increment/decrement操作符的前置(prefix)和后置(postfix)形式

C++中允许++ 和-- 操作符的前置和后置两种形式具有重载的能力。而重载是以参数类型来区分的,然而不论是++ 还是 -- 的前置或后置均没有参数,为了区分这两种不同的操作,只好让后置式有一个int自变量,并且在它调用的时候,编译器默认给该int指定一个0值。下面的例子是使char型也能进行++ 和 -- 的运算:class Char{public: Char(char); Cha

2012-04-16 16:27:52 1174

原创 5. 对定制的“类型转换函数”保持警觉

C++中允许编译器在不同类型中执行隐式转化,例如默默地将char转化为int,将short转化为double等等,这些是语言提供的。现在当你写自己的类型时,你可以选择是否提供某些函数,供编译器用作隐式类型转化之用。如定义一个类类型,是否允许其它类型转化为此类类型,我们可以操控的。可以通过两种函数允许编译器执行这样的隐式转化:单自变量constructor 和隐式类型转化操作符。单自变量co

2012-04-15 19:29:43 722

原创 8. 了解各种不同意义的new 和 delete

C++中关于new 的形态主要有三种:new operator, operator new, placement new三者的用法有着不同,注意区别适用的条件:new operator:new 操作符,和C++语言其它操作符(如+, -, ->, ::....)一样,是由语言内建的,总是完成相同的事情,程序员不能改变其意义。如下为new的一种用法:string *ps = ne

2012-04-15 14:10:54 1471

原创 2. 最好使用C++转型操作符

旧式的C转型方式,几乎允许你将任何类型转换为任何其它类型,有其自身的缺陷,表现在以下两方面:不能更精确地指明其转型的意图。如将一个pointer-to-base-class-object 转型为一个pointer-to-derived-class-object(改变一个对象的类型)和将一个pointer-to-const-object转型为一个pointer-to-non-co

2012-04-14 18:02:47 1036

原创 1.仔细区别POINTERS 和 REFERENCES

没有所谓的null reference:        若有一个变量有可能代表一个对象,也可能不代表任何对象,应该使用pointer;        如果这个变量必须代表一个对象,即不允许这个变量为null,则应该使用reference。        因此,reference必须要有初始化,但pointer就没有此限制(不过,无初始化的pointer风险很高)。

2012-04-14 16:43:16 843

原创 那些年,我们一起听过的讲座

2012年4月11日,听到科大“复兴论坛”这次请来了柳传志,很是激动,决定一定要去听一下,虽然我没有门票,这意味着我得很早去科大在外面排队等着进去。        下午5点在工大吃了晚饭,和田田、张宁一起坐公交过去的,大概5:30到了科大东区,在校园里逛了一下,发现科大那条道上也有好多樱花树,拍了张照片留念:         找到了论坛举办的报告厅,人还不多,没

2012-04-12 08:21:23 1120 1

原创 深入探索C语言之结构体(struct)

结构(struct)就是一种把一些数据项组合在一起的数据结构,其他语言把它称做为记录(record)。语法为将需要组合的内容放在花括号中,前面加上一个关键字struct,如下:struct {内容...};1. 怎样定义结构体变量:举个具体的例子,如将在校学生的信息定义为一个结构体,信息内容包括学生的姓名(string)、学号(long)、年龄(int)等,就可以声明如下:

2012-04-11 15:34:38 1668 1

原创 2012年中科大考研复试离散数学、编译原理试题(完整版)

离散数学1. (4分) 求与下述公式逻辑等值的前束合取范式:2. (8分) 对于命题公式P、Q、R,证明以下等值关系: 3. (8分)   (1) 定义集合S={1,2,3,4,5}上的二元关系R1={| j = i 或 j = i / 2}, R2={ | i    (2) 写出R2的关系图和关系矩阵,并指出其是否自反、反自反、对称、反对称、传递?

2012-04-04 16:53:45 6190 2

原创 2012年中科大考研上机机试试题(回忆版)

本次机试两个半小时,共5题。1. 字符串处理:从string.in文件里读入两个字符串,字符串除了数字还可能包括 '—'、'E'、'e'、'.',相加之后输出到文件string.out中,如果是浮点型,要求用科学计数法表示(最多包含10个有效数字)。   Sample Input:                           Sample Output:      34.5

2012-04-01 20:16:49 6277 8

原创 2006年中科大计算机考研复试机试题

这是2006年USTC的机试试题,试题来源于网络,解答为我的原创。转载请注明出处。谢谢~01.读int矩阵文件,将之转置后输出// 简单,无需解释#include int main(){ int m, n; //A[m][n] int A[100][100]; int i, j; while (scanf ("%d %d", &m, &n) != EOF) {

2012-03-28 21:19:09 2214

原创 回溯算法之 N皇后问题

// n皇后#include #include #define MAX 15int n; //n queenint cur; //cur rowint A[MAX]; //the ith row's queen put in the A[i]th columnint tot = 0; // total nums//cur 为当前遍历到的行。//从第1~

2012-03-28 20:42:52 954

原创 英语阅读理解中表示作者态度的词汇汇总

英语阅读理解中表示作者态度的词汇汇总来源:    恩波论坛    一 赞同positive adj.肯定的, 实际的, 积极的, , 确实的favorable adj.赞成的, 有利的, 赞许的, 良

2011-08-26 22:41:37 4208

原创 继续大话考研

今天2011年8月24日,结束了长达21天的考研数学强化班!现在小结一下,给我接下来的考研打打气!考研辅导班给我带来了什么?        以前我从没想过要上辅导班,因为我相信自己看书学习可以的,没必要交钱给考研辅导机构,而且也认为挣学生钱的老师也不厚道!但事

2011-08-24 22:30:59 2985 1

原创 智能车实验室阶段测验之单片机基础

每人通过抽签选择一道题,独立编程完成题目的要求,原则上不查看之前所写的程序,但能查芯片手册以及电路图,程序要有良好的编程风格(包括变量函数的命名规则、代码的对齐方式、合适的注释等)。给出一上午的时间进行编程,若有空余的时间可以试着编写其他题,下午验收,验收时首先执行程序,然后再讲

2011-07-29 07:10:49 1486

原创 智能车 SCI实验

要点难点: 串口通信的原理、设置波特率、接收中断、发送word型数据、串口助手的使用主要步骤: 1.设置波特率 2.设置数据帧的格式 3.编写发送函数(判断发送寄存器空时,才能将数据写到数据寄存器中)-- 字节和字型的 4.查询式(判断接受寄存器是否为满)和中断式接受数据方法(开

2011-07-25 11:09:28 1306

原创 智能车实验室7.21-7.31计划

给新一届实验室成员的培训计划,希望下届能弥补今年我们留下的遗憾吧....GPIO的使用(7.21):分别介绍普通IO口作为输入和输出功能的实现方式,完成以下实验:(1)流水灯实验:用摄像头组的实验板,电路中LED0-LED3分别连接到PORTB0--PORTB3引脚上,完成流水灯

2011-07-24 20:55:20 1252

原创 让小车再飞一会儿 ——记校赛惨痛失败之旅

我是冲着校赛第一名的而来的,最后却跑了个倒数第一。没有太大失落,倒是有点遗憾,因为之前试车和最后的补赛,我的车子都是跑的差不多是最好成绩了。没有太在意校赛的成绩,我的目标还是即将到来的省赛和全国赛。这次比赛的成绩虽然不太理想,但是我还是很自信我的车子在工大摄像头组是最好的。也通过这次比赛,学到了很多,尤其是比赛流程和规则,总体上一个感觉——智能车比赛不仅仅比的是平时的积累,还有更重要的是比赛时的心理素质和比赛策略!比赛前两个星期:我的神经都处在高度紧张状态,成绩也有所提高。在我们实验室的赛道,由18s提高到

2011-05-23 14:04:00 1620 2

原创 Java环境配置解析

对于初学Java的人来说,肯定是想亲手写个Java程序来看看,这也很符合程序员的心理,说再多重要性还不如自己动手写个程序看到效果的成就感高。那好,我们就开始写程序了。在写之前好像还有点东西没做吧,对了,就是必要的软件,例如之前我们写C++程序用的很多的是VC6.0等等。我们编辑程序用什么都无所谓,如果你要用记事本我也不反对,主要是程序的编译、执行需要哪些工具。在Java中,之前说过,分成两部分,首先得将源程序编译成字节码,再由Java虚拟机解释执行字节码。所以最重要的就是要有Java的编译器和解释器,这些我

2011-05-18 07:17:00 1078

原创 品味第一杯瓜哇咖啡

终于盼来了第一节JAVA课了!上面是今天上课之后,激动之情无以言表,在我的腾讯微博上发的一条微博。说实在的,等这一天等了快有两年了,学完C++之后,有了基本面向对象的概念,但由于Windows那种开发机制确实比较繁琐,学了一段时间MFC,也没去深究。后来听说Java编网络程序很强大,C#又可以编一些花哨的界面程序,当时想自学的,但由于各种因素给耽误了,其中有一点就是Java课学校会开的就没必要花时间提前花过多精力去学。但很尴尬的是,原本安排在大二下学期的Java课,在我们这届的教学计划中被推迟到大三下的后半

2011-05-10 23:41:00 1163

原创 进程与线程的区别?

进程是什么?程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。在多道编程中,我们允许多个程序同时加载到内存中,在操作系统的调度下,可以实现并发地执行。这是这样的设计,大大提高了CPU的利用率。进程的出现让每个用户感觉到自己独享CPU,因此,进程就是为了在CPU上实现多道编程而提出的。有了进程为什么还要线程?进程有很多优点,它提供了多道编程,让我们感觉

2011-05-09 22:50:00 1536

原创 怎样判断自己掌握了学到的新知识

以前一本书一本书地看,看到一种新东西,那种兴奋劲是不能用语言来形容的,但随之就觉得自己已经学会了这项新技术,感觉比别人高了一截子。任何写在纸上的东西,都是作者的心得体会,而我们看了,可能因为以前你也遇到同样的问题没能解决,你感受会很深刻的;但是呢,如果没有亲自去实践过,是不可能有深刻的体会的。我看过的书确实很多很多,可事实却是,我认为自己学到的新技术仅仅浮于表面,没能真正理解其中的内在规律,自然也不能达到举一反三的效果。经过这几天写博的感受,才知道写博其实是件很费精力的事情,尤其是技术博客。我总结的写这种技

2011-05-08 23:53:00 1853 5

原创 三种算法求解一个数组的子数组最大和

前阵子去淘宝的暑期实习生去笔试,遇到这样一个题:要求一个数组连续下标和的最大值,数组的元素可正、可负、可为零,例如-2,5,3,-6,4,-8,6将返回8。这题嘛,是很经典的一道公司的笔试或者面试题了,也有各种解法,从算法分析上,时间复杂度也有很大差别,下面我就给出三种不同的解法,看完之后,你应该就知道如果你面试的时候遇到这样的题,你应该用哪种方法最能让考官满意。方法一:暴力枚举法此种方法最简单,我想应该也是每个人拿到题目想到的第一种解法了,学过一点编程的人都应该能编出此类程序。记sum[i..j]为数组中

2011-05-08 01:02:00 3100 1

原创 排序算法之基数排序

计数排序的缺点很明显,需要额外的空间C来作为计数数组,虽然时间复杂度为O(n+k),但当输入序列里元素取值很大的时候,如k=O(n2),时,此时时间复杂度已经达到n2数量级了,空间的消耗也是让人无法承受的。这里介绍一种另一种线性排序算法——基数排序,可以应对数值很大的情况。基数排序,即一个数位一个数位地进行排序,平常生活中我们经常使用的一种算法思想:如要对一个日期进行排序,日期中由年、月、日组成的,对于这个问题,我们经常使用的是先比较年份,如果相同再比较月份,如果还相同就比较日。同理,我们比较一组数,也可以

2011-05-05 11:42:00 1799

原创 排序算法之计数排序

排序是算法与数据结构中最基本的一个模块,而我参加的两次笔试一次面试都在排序算法上有所体现,所以一开始我就从排序算法开始说起。排序算法真是太多了,各种排序怎样去选择呢?主要有几个衡量的指标:时间复杂度:主要有O(n2)、O(nlgn)以及线性的排序算法;空间复杂度:有些排序算法需要额外的辅助空间,而有些则能实现“原地排序”;稳定性:相同的元素在排序之前和排序之后相对位置是否有可能发生变化;适用条件:算法是否有些额外的限制条件。今天我先介绍一种线性的排序算法——计数排序(Counting Sort)。计数排序假

2011-05-04 10:51:00 1352

原创 开博感言

   开通了新的博客,也算是有个新的开始吧,以前的博客http://blog.csdn.net/hailinguoloveyou,因为讨厌那个ID,所以给废除了。而这个ID——hazir,是我根据我妹妹给我的建议改的,觉得简单易读寓意深刻,最重要目前为止还没有人使用。       我一直很喜欢逛CSDN,读到那些大牛们写的文章,都让我心潮澎湃!也幻想着哪天我也写自己的文章,让别人学习,接受别人的指教。和技术大牛的交流,必定是个令人愉快的。       算法是我薄弱的环节,想想大一的时候就接触到ACM,那时由

2011-05-03 11:13:00 1014 1

Linux调试技术制kprobes

Kprobe是linux的一种动态调试的技术

2012-11-18

signal-deliver

重点分析了信号处理过程中,进程从内核态切换到用户态,再由用户态切换到内核态的整个过程。

2012-11-05

Linux switch_to

switch_to 汇编宏是linux内核完成进程切换的核心代码

2012-11-05

linux-task_struct

深入解析task_struct 结构体的几个字段

2012-11-05

2012年中科大考研复试离散数学、编译原理试题

2012年中科大考研复试离散数学、编译原理试题

2012-04-04

一个数组子数组的最大和

求一个数组子数组的最大和,这是一道非常经典的公司面试或笔试题目,我分别使用了暴力枚举、分枝界定、动态规划三种算法实现。

2011-05-08

排序算法之基数排序源代码

基数排序是另一种线性的排序算法,但比起计数排序,更适用于排序的元素比较大的情况,其关键之处在于对于每一位的排序必须使用稳定的排序算法,而计数排序是较好的选择。

2011-05-05

排序算法之计数排序源代码另附博客地址

排序算法之计数排序,计数排序是一种线性的排序算法,比基于比较的排序算法效率高,但其应用有特定的领域。我给出了两种策略的计数排序算法,欢迎下载~~如程序中有Bug,恳请指正!

2011-05-04

空空如也

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

TA关注的人

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