自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (1)
  • 收藏
  • 关注

原创 工厂模式

面向对象系统的分析和设计实际上追求的就是两点:高内聚(Cohesion)、低耦合(Coupling),而为了达到这样的目的,我们会抽象出一些类的公共接口以形成抽象基类或接口,这样我们就可以通过声明一个指向基类的指针来指向实际的子类实现,达到多态的目的。         但是这样会造成一个问题:当有许多子类继承自抽象基类,我们每一次使用子类都需要编写如: Figure* figure1 =

2014-06-12 21:43:53 524

原创 2014UC笔试(广州)软件开发:客户端方向(1)

昨晚参加了UC的客户端方向的笔试

2014-05-15 20:41:04 716

原创 Linux内核链表

链表是一种常用的数据结构,早在大一学C语言的时候就已经学过,之后又在数据结构、算法等课上多次提及和使用。但是最近在学习Linux的内核,发现在Linux内核中的链表跟我们平常所使用的链表有很大的不同,现来总结一下。    首先,我们之前所使用的链表的每一个结点都是一样的。无论是单向链表还是双向链表、还是循环链表,使用链表之前都要声明一个结构体Node,在Node中存放数据域和指针域,以双向链表

2014-05-05 21:41:43 619

原创 《算法导论》学习笔记(5)——动态规划:最长子序列

动态规划,是一种通过组合子问题的解来求解原问题的方法,应用于子问题重叠的情况,即不同的子问题具有公共的子子问题。对于这种问题,很容易想到用分治的方法,但是分治的缺点,是会做许多不必要的工作,而且会反复求解那些公共子子问题。而动态规划对每个子问题只求解一次,将其解保存在一个表格中,从而无需每次求解一个子子问题都重新计算,避免了这种不必要的计算工作。       动态规划算法的设计通常为以下四个步

2014-05-01 16:13:12 1266

原创 《算法导论》学习笔记(4)——红黑树(c++语言实现)

这是c++实现的红黑树,主要思路跟

2014-04-27 21:39:07 783

原创 《算法导论》学习笔记(4)——红黑树(c语言实现)

根据上一篇博客:《算法导论》学习笔记(4)——红黑树

2014-04-27 21:27:15 1006

原创 《算法导论》学习笔记(4)——红黑树

红黑树是一棵搜索二叉树,它在每个结点上增加一个存储位来表示结点的颜色(红或黑)。         红黑树的每个结点都有如下五个属性:color、key、left、right、parent          红黑树必须满足如下5个性质:         ①每个结点的颜色或是红色,或是黑色         ②根结点是黑色         ③每个叶结点是黑色的        

2014-04-27 21:17:32 787

原创 EffectiveC++读书笔记(3)条款7、8、9

条款07:为多态基类声明virtual析构函数         先直接给个例子:

2014-04-20 20:50:12 635

原创 EffectiveC++读书笔记(2)条款4、5、6

条款04:确定对象被使用前已被初始化         内置类型、STL         对于内置类型,像int、double等,其初始值都是垃圾值。书中建议:永远在使用对象之前先将它初始化。         而对于STL来说,C++已经为这些容器提供了构造函数,会自动地初始化,我们可以直接使用而可以不初始化。                  自定义类         确保

2014-04-11 18:48:39 650

原创 EffectiveC++读书笔记(1)条款1、2、3

条款01:视C++为一个语言联邦         C++的四个次语言                   ①C                   ②Object-OrientedC++                   ③Template C++                   ④STL         C++是个多重范型编程语言,同时支持过程形式、面向对象形式、函

2014-04-08 00:46:44 621

原创 《算法导论》学习笔记(3)——二叉搜索树

二叉搜索树是以一棵二叉树来组织的。在二叉树的基础上,增加了一些限制:对于任何结点x,其左子树的任何结点都不大于x.key,右子树的任何结点都不小于x.key。二叉树与二叉堆:         二者都是基于二叉树来构建的数据结构,但是二者的区别在于:二叉堆(最大堆)的每个结点的值都大于等于其两个儿子的值,二叉查找树的父亲是小于等于其右孩子的。如下图:基

2014-03-21 22:33:57 763

原创 《算法导论》学习笔记(2)——快速排序

快速排序,是一种基于分治思想的排序算法。分治,简单来说就是“大事化小”,从而达到最基本的问题,然后再将其合一。         在快速排序算法中,每次需要把一个数组A[p...r]分为三部分:A[p...q-1]   A[q]  A[q+1...r]而对两个子数组:A[p...q-1]和A[q+1...r]的要求却很少:只需要满足A[p...q-1]中的每个元素都小于等于A[q],A[

2014-03-05 20:22:37 760

原创 位运算的小问题

之前学习c语言的时候课程中并没有介绍过位操作,关于位操作也是之后零零散散地遇到。最近又遇到了一个问题,索性就总结一下吧。         问题大概是这样的:unsigned char x = 0xf4;printf( "%x",~x );          输出是什么??         之前以为是 b。因为16进制 f4 = 1111,0100,取反之后是 0000,1011

2014-03-04 00:20:08 812

原创 《算法导论》学习笔记(1)——堆与堆排序

堆排序( Heapsort )是指利用“堆”这种数据结构所设计的一种排序算法。         堆是一种数据结构,是一个数组。它可以被看成一个近似的完全二叉树,树上的每一个结点对应数组中的一个元素。除了最底层外,即叶子结点,该树是完全充满的,而且是从左到右填充。         最大堆的每个结点都要满足堆的性质,此外还有其他的约束:堆中的最大元素存放在根结点中,并且在任一子树中,该子树所包

2014-02-09 16:38:50 763

原创 海明码的编码和校验

海明码(Hamming Code),即汉明码,是一种纠错码。可以在数据传输中发生错误时,查找出出错的位置,从而纠正错误。需要强调的是,海明码只能纠错一位,当有多位出错时,是纠不了的。         下面以发送二进制数据:1011 0110         为例,简述海明码的工作原理。发送方        步骤一、往数据中插入校验码,先用字母代替。A插在第1个位置,B插

2014-01-27 23:04:35 2651

原创 实现中缀表达式到后缀表达式的转换

题目要求:完成Java程序设计    要求:实现中缀表达式到后缀表达式的转换,为InfixToPostfix类实现convertExpr(String expression),其中参数expression为中缀表达式,其返回值为后缀表达式,最后将其输出到控制台即可。中缀表达式符合人们平时的表达习惯,如:(1+2)*(9-5)。但是计算机在计算这样的表达式时却不会像我们人类一样的思维,而

2013-09-23 21:42:45 1487

最佳调度问题的回溯算法

设有n个任务由k个可并行工作的机器来完成,完成任务i需要时间为 。试设计一个算法找出完成这n个任务的最佳调度,使完成全部任务的时间最早。(要求给出调度方案)

2016-02-28

空空如也

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

TA关注的人

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