8 yang_yulei

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 9k+

【转】如何提升你的能力?给年轻程序员的几条建议

入职两个多月了,平时要处理的任务太多,博客都荒废了(又为自己的懒惰找借口了。。。)看到一篇前辈的好文章,讲的很好,转载过来分享给大家。其实,无所谓技术高低,只要肯学习、肯思考、日精进,积累的力量是很大的,但是我们大多数人都败给了惰性。当然,惰性也是人类的本性之一,因为惰性、懒得思考,我们的祖先能少些消耗能量,能在难以获取食物的远古生存下来,呃,扯远了。。。。认清你自己,合理规划时间

2015-09-30 23:25:11

查找——图文翔解HashTree(哈希树)

引在各种数据结构(线性表、树等)中,记录在结构中的相对位置是随机的。因此在机构中查找记录的时需要进行一系列和关键字的比较。这一类的查找方法建立在“比较”的基础上。查找的效率依赖于查找过程中所进行的比较次数。之前我们介绍的各种基于比较的树查找算法,这些查找算法的效率都将随着数据记录数的增长而下降。仅仅是有的比较慢(时间复杂度为O(n)),有的比较快(时间复杂度是O(logn))而已。这些

2015-06-10 00:03:23

查找——图文翔解SkipList(跳跃表)

跳跃表跳跃列表(也称跳表)是一种随机化数据结构,基于并联的链表,其效率可比拟于二叉查找树(对于大多数操作需要O(logn)平均时间)。基本上,跳跃列表是对有序的链表增加上附加的前进链接,增加是以随机化的方式进行的,所以在列表中的查找可以快速的跳过部分列表,因此得名。所有操作都以对数随机化的时间进行。如上图所示,是一个即为简单的跳跃表。传统意义的单链表是一个线性结构,向有序的链表

2015-06-09 00:09:31

查找——图文翔解RadixTree(基数树)

基数树对于长整型数据的映射,如何解决Hash冲突和Hash表大小的设计是一个很头疼的问题。radix树就是针对这种稀疏的长整型数据查找,能快速且节省空间地完成映射。借助于Radix树,我们可以实现对于长整型数据类型的路由。利用radix树可以根据一个长整型(比如一个长ID)快速查找到其对应的对象指针。这比用hash映射来的简单,也更节省空间,使用hash映射hash函数难以设计

2015-06-08 00:10:31

查找——图文翔解Treap(树堆)

Treap=Tree+Heap。Treap本身是一棵二叉搜索树,它的左子树和右子树也分别是一个Treap,和一般的二叉搜索树不同的是,Treap纪录一个额外的数据,就是优先级。Treap在以关键码构成二叉搜索树的同时,还满足堆的性质。这些优先级是是在结点插入时,随机赋予的,Treap根据这些优先级满足堆的性质。这样的话,Treap是有一个随机附加域满足堆的性质的二叉搜索树,其结构相当于以随机数据插入的二叉搜索树。其基本操作的期望时间复杂度为O(logn)。相对于其他的平衡二叉搜索树,Treap的特点是实现简

2015-06-04 00:04:16

C语言的角落(二)——你不一定知道的C语言特性

之前写过一篇C的语言的角落,介绍了一些C中的一些非常用特性(http://blog.csdn.net/yang_yulei/article/details/34557625),最近又整理了一些边角的知识,特开此文。switch语句中的case(case 关键词可以放在if-else或者是循环当中)switch (a){ case 1:; // ..

2015-06-03 00:04:33

查找——图文翔解SplayTree(伸展树)

伸展树伸展树(Splay Tree),也叫分裂树,是一种二叉排序树,它由Daniel Sleator和Robert Tarjan创造,后者对其进行了改进。假设想要对一个二叉查找树执行一系列的查找操作。为了使整个查找时间更小,被查频率高的那些条目就应当经常处于靠近树根的位置。于是想到设计一个简单方法,在每次查找之后对树进行重构,把被查找的条目搬移到离树根近一些的地方。splaytre

2015-05-27 00:05:04

程序的内存布局——函数调用栈的那点事

[注]此文是《程序员的自我修养》的读书总结,其中掺杂着一些个人的理解,若有不对,欢迎拍砖。程序的内存布局现代的应用程序都运行在一个虚拟内存空间里,在32位的系统里,这个内存空间拥有4GB的寻址能力。现代的应用程序可以直接使用32位的地址进行寻址,整个内存是一个统一的地址空间,用户可以使用一个32位的指针访问任意内存位置。在进程的不同地址区间上有着不同的地位,

2015-05-22 00:14:56

设计模式的一点总结和思考(一)创建型

面向接口编程对于当前不知道或无法确定的东西,我们就抽象它,只对其接口操作,即现在不知道具体的涉及对象,但我知道如何使用它,先用其接口,待以后知道了具体的对象之后,再绑定上即可,这就是所谓的封装变化。虽然不确定目标是谁,但可以确定如何使用目标。 多种多样的设计模式其实做的就是 封装变化 ,面对不同的情景,分析什么是变化的,什么是不变的,封装变化,使上层代码能够“以不变应万变”。简单工

2015-05-18 12:42:14

警惕缓冲区溢出(C中那些不安全的库函数)

C 和 C++ 不能够自动地做边界检查,边界检查的代价是效率。一般来讲,C 在大多数情况下注重效率。然而,获得效率的代价是,C 程序员必须十分警觉以避免缓冲区溢出问题。C语言标准库中的许多字符串处理和IO流读取函数是导致缓冲区溢出的罪魁祸首。我们有必要了解这些函数,在编程中多加小心。一、字符串处理函数strcpy()strcpy()函数将源字符串复制到缓冲区。没有指定要复制字符的具体数目!如果源字

2015-05-16 18:15:12

以一个简单的项目来学习面向对象编程(设计模式和多线程)

下面的项目是两年前学校老师布置的一个小项目,当时自己用了一种很笨拙的方式实现了,现在用面向对象的思想和多线程重构这个项目。问题描述:西宝高速仿真模拟 西安市到宝鸡市之间是我省主要的高速公路客运路线之一,经过简化后的客运路线端点、中途停靠点和里程如下图所示(括号里是简称,里程的单位是公里): 限定条件 (1) 从XN始发至BJ的客车和从BJ始发至XN的客车均有两种车型:沃尔沃(限定乘客人数为40人

2015-03-09 20:44:45

C语言全局变量那些事儿(深入C中最隐秘的地带)

【虽然自认为对C的角角落落都有所了解,但直到看到这篇文章,才知道C中的一些隐秘的坑,是自己之前不知道的。关于全局变量的链接问题,之前在我博客的某文章中有介绍过,一般对C有些了解的程序员都知道这个问题,但本文最后所提到的使用动态链接库所出现的问题,着实让我震惊。(心急的朋友,可跳过前面的,直接读“第4个例子”)所以,以后大家在使用全局变量的时候要留点心,良好的命名规范,在一定程度上可以避

2015-01-31 21:00:43

2015届校园招聘笔试/面试 基础知识点 总结

9、10月是校园招聘的黄金时间,

2014-10-21 10:47:27

林建:计算机专业学习浅谈

一、广泛了解,从科普书籍开始选择计算机专业的同学,也许是因为原先有一定的基础,也许是因为一时的激情,但更多的人,可能对自己的选择没有深刻的认识,或多或少对计算机专 业有一些神秘的感觉。自己究竟是否喜欢这个学科?才华能够在哪个分支领域有所施展?抑或是真的不适合这个专业?诸多疑问,解决的方法首先便是了解和认识我 们的学科。浓厚的兴趣是学好任何学科的源泉;而广泛的了解则是获得兴趣的途径。当今我们

2014-10-13 23:19:33

人和人最大的差别不是技术上的高低,而是你的人生观价值观

今天看了大家在网上就西邮的学生蔑视交大学生的事情大发感慨,所以想写点东西供大家参考。本人07年硕士毕业,毕业后去了上海在一个外资公司干了三年时间,10年从公司辞职回到西安自主创业,目前有自己的一个小公司。当然也是刚刚起步。谈谈我对与工作的一个体会还有我对于人生的一个观点。记得前两天看《钱学森》的时候钱老在病榻之时说过,想作为一个合格的科技工作者不能埋头于技术本身,还

2014-09-14 19:52:32

面向程序员的设计模式 ——GoF《设计模式》读书总结(壹)抽象工厂&生成器

第一部分:创建型模式创建型模式抽象了实例化过程。它们帮助一个系统独立于如何创建、组合和表示它的那些对象。(把一些小的对象组装成大对象,这个工作由专门的类对象来做)一个类创建型模式使用继承改变被实例化的类,而一个对象创建型模式将实例化委托给另一个对象。 随着系统演化得越来越依赖于对象复合而不是类继承,创建型模式变得更为重要。因为系统定义一个较小的行为集,这些行为可以被

2014-07-31 08:21:44

面向程序员的设计模式 ——GoF《设计模式》读书总结(零)

这个题目很奇怪,设计模式不就是指导程序员进行软件设计的么?呃,我的意思是这是与 面向“对象”的设计模式相对的。以前有看过有人写过《给妻子解释设计模式》,这种把计算机中的思想与生活相结合固然很好。人类解决问题的思想是相通的,计算机中的很多思想比如分治、递归、贪心等都能在生活中找到相似的例子。但是,不恰当的例子反而会误导人的思维,造成理解偏差。设计模式本就是类与类之间如何组织的一套软件设计经验,我们拿

2014-07-30 08:58:01

图表控件TeeChart干货分享(绘制2D、3D实时曲线---VC++示例源代码--网络首发)

最近接手了一个项目,其中涉及到MFC和实时曲线显示的问题,由于我之前从未接触过此类技术,现学现搞,把其间用到的觉得对初学者有用的东西,总结一下。尤其是关于TeeChart控件部分,网上资料零碎,且很多不全面,代码难以使用。我苦寻数周在外国一些网站上寻到了一些有用的信息,把相关的可运行的代码示例贴在文中,希望能帮到后来者。  MFC部分:一、分割窗体新建一个单文档的MFC

2014-07-28 08:37:38

如何在网络中 传输二叉树森林 (C++源代码实现)

前些日子有朋友遇到这个问题来问我,我觉得有点意思,便实现了代码,写篇文章做个总结,与网友分享。 需求:实现两个API,在客户端:传入一个二叉树的根结点指针,输出可以在网络中传输的ASCII串。在服务器端:根据传入的ASCII串来解析生成一个二叉树,返回二叉树的根结点指针。 思路:看到这个问题,首先想到的是二叉树补全法,将这课二叉树补全,变成一颗完全二叉树,再使用数组进行存储

2014-07-15 08:40:41

《编程珠玑》---笔记。浏览此文,一窥此书。

第一章:磁盘排序:对于一个提出的问题,不要未经思考就直接给出答案。要先深入研究问题,搞清楚这个问题的特点,根据这个特点,可能有更好的解决方案。 比如:文中:最初的需求只是“我如何对磁盘文件排序”。我们首先想到了经典的归并排序。但,进一步了解到排序的内容是10000000个记录,每条记录都是一个7位整数,且只有1M可用的内存。每条记录不相同。 【位示图法,详见我的关于排序

2014-06-30 23:53:01

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!