软件设计师基础知识
文章平均质量分 68
水田如雅
不生产代码,只是代码的搬运工
展开
-
Cache地址与主存地址对应关系
但是对于经常使用的程序或文件,想想如果我们经常按照这个顺序读下来,举个极端点儿的例子,从硬盘读到内存要1000S,从内存读到cache要100s,从cache读到寄存器执行要1s,这是我们就应该想,对于常用的东西,为什么不就放在身边呢?但是考虑到寄存器的容量太小的问题,于是,我们就把常用的东西放到了cache里面。这里的cache起到了一个buffer的作用:暂时不用但以后常用的东西先存起来。原创 2014-09-11 21:44:18 · 9730 阅读 · 23 评论 -
数据库设计——三范式概念+实战
在利用三范式设计数据库的时候,以前总以为是先画完ER图,然后导出关系模式,最后用三范式去检验数据库设计的是否合理,but not!我们在一开始画ER图的时候,就应当和三范式联系起来,将错误消灭在源头。为了能最早的检验出错误,我们就要对ER图转换成关系模式的算法和三范式是如何消除冗余,避免冲突有深刻的了解,才能知道如何最早发现错误。 本文主要以机房收费系统数据库设计中的一些东西为原创 2014-10-09 21:45:48 · 3107 阅读 · 24 评论 -
回溯法——求解0-1背包问题
以前研究过一个简单的N皇后问题,对回溯法也有了个模糊的认识,大致理解就是:先一直做某件事,当完成某个条件时或者是触犯某个条件时,再返回到最近的一个类似还原点的地方。 在用回溯法求解0-1背包问题的时候,主要遇到三个相对难解决的问题:1,什么是界限函数;2,什么时候用它;3,回溯到哪儿。 什么是界限函数?...原创 2014-10-28 08:45:34 · 6801 阅读 · 34 评论 -
动态规划法——最长公共子序列问题
这个题当初始终看不下去的原因就是当初误解了什么叫最长公共子序列,还一度以为这个题有问题,其实如果明白了什么叫最长公共子序列,也就解决了一半的问题。什么是最长公共子序列? 什么是最长公共子序列呢?举个简单的例子吧,一个数列S,若分别是两个或多个已知序列的子序列,且是所有符合条件序列中最长的,则S称为已知序列的最长公共子序列。...原创 2014-10-27 21:52:36 · 2405 阅读 · 18 评论 -
动态规划法——求解0-1背包问题
问题描述0-1背包问题与背包问题(贪心法——背包问题)最大的不同就是背包问题的子问题彼此之间没有联系,所以只要找出解决方法,然后用贪心算法,取得局部最优解就ok了,但是0-1背包问题更复杂,因为物品不可再分,导致了子问题之间是有联系的。问题分析 1,刻画背包问题最优解的结构...原创 2014-10-25 22:01:27 · 3243 阅读 · 17 评论 -
回溯法——求解N皇后问题
问题描述 八皇后问题是十九世纪著名数学家高斯于1850年提出的。问题是:在8*8的棋盘上摆放8个皇后,使其不能互相攻击,即任意的两个皇后不能处在同意行,同一列,或同意斜线上。可以把八皇后问题拓展为n皇后问题,即在n*n的棋盘上摆放n个皇后,使其任意两个皇后都不能处于同一行、同一列或同一斜线上。问题分析 我们以最简单的4皇后问题分析,显然,...原创 2014-10-25 21:48:39 · 7577 阅读 · 17 评论 -
数据表示
软考中涉及到很多码,比如原码,反码,补码,移码。。。。。还是先来看张整体图吧。 首先是原,反,补,这三个要分正负;接着是移码,可以根据补码求。最后是处理小数的表示问题,和浮点数取代定点数表示小数的方法。 这些东西在硬件的学习中属于数字电路那部分的基础知识,因为计算机还是用来编码和解码的东西原创 2014-10-23 20:37:06 · 2117 阅读 · 17 评论 -
CPU组成
建议在学习CPU的时候,想想指令在这些部件中都是怎么流动的,会更形象。原创 2014-10-23 19:25:16 · 1688 阅读 · 19 评论 -
4类多态
在软考学习的时候,才发现多态不仅仅只有我认识的那么一两种,很多用过的形式原来它们也是多态呀。 首先来看下大图: 接下来本文将一一举例这些多态,并在末尾做个小对比。一,简介几种多态 1,泛型 这个听起来比较高大上,但是大家都用过,原创 2014-10-23 21:34:32 · 1903 阅读 · 20 评论 -
贪心法——活动选择问题和背包问题
今天上午听了米老师讲的算法,感觉收获很多,对于算法更加有信心了。首先,先来宏观看一下: 这三种算法总的来说,刚开始看的时候不知道怎么下手,但是看多了也会有那么一点儿感觉。分治法是这三种算法里面都有的思想,动态规划和贪心都是将问题分解成子问题求解,但动态规划里面的子问题都带有联系,而贪心算法里面的子问题都...原创 2014-10-23 20:19:32 · 2787 阅读 · 28 评论 -
海明码编码示例
在写编码步骤之前,先来熟悉几个表示符号: 编码规则 下面以8为数据位编码步骤为例: 一,确定D与P在海明码中的位置 海明码及数据位校验位对应表: 如上图,校验码是所在位置在第2^(n-1)的位置,当我们在表中填好校验位之后,原创 2014-09-27 22:28:53 · 4854 阅读 · 34 评论 -
哈夫曼树及哈夫曼编码
利用哈夫曼树,可以将将整体选择判断的次数降到最低,优化算法,进而将得到的哈夫曼树进行编码时,则可以将字符在传输过程中总的编码长度降到最短。 如上图,是一个判断体重在什么范围内的判定树,例如,学校体检的时候,我们反复用这个算法,当你输入一个体重:200斤,然后程序就开始反复判断了,经过三次判断,它发现你过重,然后重启系统了,又来一个人,还是200斤,三次判断之后,又系统重启了…后面的200多个200多斤的盘子判断完了之后,来了个原创 2014-09-25 19:29:41 · 2401 阅读 · 29 评论 -
网络学习概述
刚开始学习网络的时候,感觉网络的东西又多又乱,根本不知道哪里跟哪里连着,整体结构是什么样子的,当时自己还是一个纯盲人。原创 2014-09-12 10:24:06 · 2100 阅读 · 31 评论 -
分治法——循环赛日程安排问题
问题描述:设有n(2^k)位选手参加网球循环赛,循环赛共进行n-1天,每位选手要与其他n-1位选手比赛一场,且每位选手每天只能赛一场,试安排比赛。举例说明:1,当n为偶数时,循环赛一共要进行n-1天;比如,有运动员:周董,信哥,蔡依林,小七,一共4个人,可以如下安排: 运动员 第一天 ...原创 2014-11-05 16:51:13 · 6133 阅读 · 9 评论