- 博客(36)
- 收藏
- 关注
原创 Linux基础篇八——基本进程调度算法总结
调度算法是指:根据系统的资源分配策略所规定的资源分配算法。 一、先来先服务和短作业(进程)优先调度算法 1. 先来先服务调度算法。先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度, 也可用于进程调度。FCFS算法比较有利于长作业(进程),而不利于短作业(进程)。在进程调度中采用FCFS算法时,每次调度是从就绪队列中选择一个最先进入该队列的进程,为之分配处
2016-06-05 21:45:12 1103
原创 C++之菱形继承
当我们谈C++时,我们谈些什么? 封装,继承,多态。这是C++语言的三大特性,而每次在谈到继承时我们不可避免的要谈到一个很重要的问题——菱形继承。a.菱形继承是什么650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/82/0C/wKioL1dJRWXj5DLqAAERlUlgRjw139.png" title="菱形继承.PNG
2016-05-30 13:35:53 7259 2
原创 Linux基础篇五——find it !
我们知道在Linux中有许多许多的文件,有的时候凭借我们的记忆我们可能要找很久很久才能够找到我们所需要的文件,之前我们稍有提到过一个命令叫做find 它确实是一个十分重要的命令。 find的基本用法: 和时间有关的参数:-atime、-ctime、-mtime、-newer ** 以-mtime为例,看看与事件有关的选项的用法: -mtime n:在n天之前的“一天之内”被更改的
2016-05-30 13:35:48 526
原创 Linux基础篇四———管道命令
管道命令 如果我们的数据必须经过“几道手续”之后才能够得到我们想要的格式那么我们必须使用pipe命令来解决这个问题 **管道命令和连续执行命令是不一样的 我们来看一下管道命令的处理信息流程650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/7F/FC/wKiom1czNVSjrtv3AAAlrYwg13Q965.png" tit
2016-05-30 13:35:45 380
原创 Linux基础篇三——链接文件知多少
As is known to all,在windows环境下我们早已经见过链接文件,机我们平时所使用的快捷方式。 其实,在linux里我们可以见到以下两种类型的链接文件 a.硬链接文件 创建命令:ln [源文件] [目标文件] 硬链接即实际链接。 记得我们讲过什么叫做inode,那么我们来根据下图理解一
2016-05-30 13:35:42 316
原创 重建二叉树
二叉树是我们学习数据结构阶段一个重要的知识点,二叉树又被分为满二叉树,完全二叉树和其它三种来学习,所谓的满二叉树是指我们的二叉树的每一个非叶子节点一定含有左孩子和右孩子,而完全二叉树则是指我们的树的叶子节点必须连续的分布在树的左边。 今天,我们来探索一下如何在知道二叉树前序遍历顺序及中序遍历顺序来重建二叉树 首先,重建我们的二叉树,必须要找到根节点,那么根节点应该如何找到呢。如下图所示
2016-05-30 13:35:39 284
原创 Linux基础篇二
特殊的权限SUID: 2 用户执行此二进制程序时,在执行过程中用户会暂时具有所有者权限 *仅对于二进制程序有效 *执行者对于该程序必须有x权限 *该权限只在执行过程中有效 *执行者将具有改程序owner权限SetUID:当文件所有者的x权限变成s时,就称SetUID.SGID: 4 用户在这个目录下创建的文件用户组都会和该目录
2016-05-30 13:35:36 383
原创 稀疏矩阵的压缩存储及转置算法
矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合.稀疏矩阵:有效数据远少于无效数据。 eg:规定无效数据为 0 1 0 0 0 0 0 0 0 0 2 0 3 0 0 0 4 0 0 0 0上述矩阵则可称为一个稀疏矩阵我们在学习C语言的时候已经见过并使用过矩阵,其实它在我们的编程语言里可以翻译成二维数组,由于稀疏矩阵的有效数据十分的少,完全存储十分耗费我们的空间
2016-05-30 13:35:33 604
原创 Linux基础篇一
一切即文件 “给不同的问题提供相同的解决方式” 在linux中所有的设备都被当做一个文件来处理,包括我们的IO设备也是一样的,一般来说,他们被放在/dev这个目录下 eg: IDE硬盘 /dev/hd[a-p] (a-p是它的编号)磁盘分区表 a.主引导分区MBR:安装引导加载程序,共446bytes b. 分区表:记录整块硬盘分区的状态,共64byte
2016-05-30 13:35:30 474
原创 挖坟字符串知识点
不要怀疑,博主这次真的是在挖坟,今天整理笔记的时候才看见,所以呢,就上来备份一下,这篇呢主要是说一些关于字符串函数的知识点,希望大家以后在使用的时候注意一下!一、字符串基本知识1.字符串:顾名思义,字符串即一串字符的组合,并且以NUL结尾,所以我们不能让'\0'出现在字符串还 没有结束的地方。2.NUL:它本身并不是字符串的一部分而是一个我们用来判断一个字符串结束与否的标识!3
2016-05-30 13:35:28 675
原创 用栈实现迷宫游戏寻路
在我们学习数据结构的时候都曾经见过迷宫游戏,迷宫游戏的实现其实并不难,但是,我们在实现每一个算法的时候都应该想一想这个问题的每一个解。最近,博主已经开始重温数据结构啦,记得我们以前学习这里的时候,老师会用队列来实现迷宫最优解的寻找,氮素呢,博主就是这么可爱,博主就是想试试用栈来找一下。 在实现之前让我们先来复习一下栈的特点:first in last out 对于栈这种数据结构我们只能
2016-05-30 13:35:25 1777
原创 RAII&智能指针
智能指针是C++中为了实现资源的有效管理而被提出的,我们可以创建它但无须操心它的释放问题,在引入异常机制的程序里它是十分有用的,或者说,对于博主这中粗心大意的人来说还是可以偶尔使用的。他可以在一些场合防止内存泄漏的问题。但是,智能指针也是存在着许多的问题,所以许多的编程规范里告诫我们少使用智能指针,但对于我们来说,必须了解它的原理。*RAII:资源获得即初始化,我们在构造函数里将其初始化,并在析构
2016-05-30 13:35:22 301
原创 Somethings About 《c++编程思想》
以下为博主呕心沥血的总结,看的时候要珍惜一点,答应我!650) this.width=650;" src="http://img.baidu.com/hi/bobo/B_0039.gif" alt="B_0039.gif" />1.函数参数进栈顺序:从右到左2.字符串化预处理特征:在表达式前加上‘#’表示将仍和一个表达式转化成一个字符串。3.解析一个变量的类型:从中间向外扩展,先右再左,大多数的声
2016-05-30 13:35:19 499
原创 空指针也能调用成员函数?
最近各大公司都在招聘实习生,昨晚,微信公众号推送了网易的笔试题让小伙伴们参考,看了第一道题,博主就觉得“嗯,我果然还是见识短哈!”为什么呢,我们先看看这个代码~class cal{public: void show() { cout << "cal::Show()" << endl; }};int main(){ cal *pcal = NULL; pcal->show(
2016-05-30 13:35:16 1435 1
原创 利用栈实现逆波兰算法
1.逆波兰表达式? 在我们的普遍认知中,计算的优先级总是和()相关,形如(1+2)*(3+4)这样的式子,我们看起来十分的清晰明了,但对计算机来说,它会进行很多次的判断来确定一个运算的优先级。于是在很久很久之前就有一个人发现,如果我们将上述算式写成形如1 2 + 3 4 + *的形式,计算机判断起来会显得格外的快,效率也会更高,然而它的实现原理是什么样的呢。2.算法分析 经过观察,我们
2016-05-30 13:35:13 425
原创 C++ 继承&多态
继承&多态· 访问限定符*继承访问控制的作用是将继承下来的成员在派生类域内的属性改变而和原本基类的成员访问控制符关。 所有的基类private成员在派生类里是不可见,但它确确实实被继承下来了。 基类的protected成员只对继承它的派生类可见,在类外不可使用· 派生类列表 在定义派生类的时候我们必须写出派生类列表,但在声明处不可写。1.虚函数的使用(多态的实现)#includeusing n
2016-05-30 13:35:10 231
原创 初识C++(一)
1.C++的数据类型 基本数据类型:char,int,float,double,void,bool 非基本数据类型:数组,指针,结构体,联合,枚举,类2.C++的命名空间 a.命名空间:定义了某些标识符的作用域,使得我们在使用同名全局变量时不发生冲突 eg: #include using namespace std;//使用标准命名空间 int main() { cout<<"
2016-05-30 13:35:07 290
原创 Something About Expert C Programming
字符串的自动合并int main( ){ char *Str[] = {"abc" "def"}; printf( "%s\n", Str[0] ); system("pause"); return 0;}输出结果:abcdefANSI C规定相邻的两个字符串合并成一个字符串,必须注意在两个字符串之间添加“ ,”!但多余的“ ,”却并没有什么影响!2.sizeof 的操作数int ma
2016-05-30 13:35:04 266
原创 Linux基础——系统分区
1.虚拟机的安装虚拟机的硬件管理:虚拟化引擎优化会占用大量内存,根据需要选择网络的选择:桥接 :利用真实本地网卡通信,虚拟机会占用真实机网段IP NAT :只能和本局域网内自己的真实机通信,可以上网推荐使用桥接虚拟机使用的小技巧: 虚拟机快照:保存虚拟机的当前状态,需要时可自动恢复到快照的状态 克隆:当前虚拟机状态被克隆初一个和它一样的状态
2016-05-30 13:35:01 324
原创 前方一大波指针正在赶来~
我们知道,通常我们来访问数组元素和指针变量的时候都可以通过下标和偏移两种方式来访问,那么他们有什么不一样的地方呢?650) this.width=650;" src="http://s5.51cto.com/wyfs02/M00/77/11/wKioL1ZijAuQEKFXAABLi_GPCH0242.png" title="截图20151205150007.png" alt="wKioL1Zij
2016-05-30 13:34:59 411
原创 数组与指针(一)
数组和指针数组:同类元素的集合指针:存放地址的变量(图解1)650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/76/F0/wKiom1ZfGCWCDOYIAAAchuz7YRk996.png" style="float:left;" title="数组 和指针的存储" alt="wKiom1ZfGCWCDOYIAAAchuz7YR
2016-05-30 13:34:56 383
原创 优化的冒泡排序的实现
冒泡排序,又是这个经典的算法,它虽然效率不高却始终没有被人们遗忘。今天,我们不讨论冒泡排序的用法而是来讨论如何让它变得更高效。首先我们写出最原始的冒泡排序算法int main(){ int i=0; for(i=0;i<n-1;i++) { for(j = 0;j <= n-i-1;n++) {
2016-05-30 13:34:53 407
原创 C专家编程读书笔记——time_t知识链接
time_t实际上是一个长整形的数据类型,用于记录从1970年1月1日0时0分0秒(UNIX出现的时间)起到当前一共多少秒的时间记录,然而对于time_t来说它表示的时间的最大值只能到2038 ,所以有一些厂商引入了64位甚至更长来保存时间。我们通过查找头文件time.h来观察time_t的定义#ifndef _TIME32_T_DEFINEDtypedef _W64 long __time32
2016-05-30 13:34:50 635
原创 程序的环境
在ANSI C的任何一种实现中,都存在两种环境,翻译环境和执行环境。一、翻译环境在翻译环境中源代码被转成了机器指令。翻译由好几个步骤组成,组成一个程序的每个源文件通过编译过程分别转换成目标代码(object code)。然后目标文件由链接器捆绑在一起,形成一个单一而完整的可执行程序。链接器同时也会引入标准函数库中任何被改程序所用到的函数,包括程序员引入自己定义的头文件中的函数。这个过程发生在预处理
2016-05-30 13:34:47 396
原创 浮点数在内存中的存储(简述)
数据类型:1.基本类型(整形,浮点型,字符型)2.构造类型(数组,结构体,联合,枚举)3.指针类型查看数据范围:整形范围(limits.h) 浮点型类型(flaot.h)eg:有符号的char的表示范围:0000 0000~1111 1111(-128~127)其中最高位表示符号位,0为正 1为负650) this.width=650;" src="/e/u261/themes/default/i
2016-05-30 13:34:44 1039
原创 关于#define你知道多少?
编译一个C/C++程序需要很多步骤,通常,我们第一步都是预处理阶段,它的主要任务包括:删除注释,插入被include包含的文件内容,定义和替换,以及确定代码部分参与编译的内容。预定义符号 预定义符号是由预处理器定义的符号,它的值一般是字符串常量或者是十进制的数字常量 符 号含 义例 子__FILE__进行编译的源文件名"test.c"__LINE
2016-05-30 13:34:41 1725
原创 计算机的大端模式和小端模式
大端模式和小端模式指的是我们计算机的存储数据的方通常又称为大尾和小尾。大端:数据的高字节保存在内存的高地址小端:数据的高字节保存在内存的低地址下面是两种方式的示意图650) this.width=650;" src="http://img.baidu.com/hi/jx2/j_0047.gif" alt="j_0047.gif" />650) this.width=650;" src="http:
2016-05-30 13:34:38 748
原创 看似简单的if语句
分支是我们学习C时最常用的结构,它可以分为:顺序结构,选择结构,循环结构在这里 我们主要讨论选择结构相信大家都不陌生,再我们学习和使用C或者其它高级语言时,一般都会使用if语句,if 语句使得我们的程序能够在做出条件的选择之后输出我们想要的结构。例如:if (a>b) printf("a is the max!");else if(b>a) printf("b is the ma
2016-05-30 13:34:29 487
原创 神奇的位操作符
相信学过C语言的小伙伴们都知道位操作符,正确的使用位操作符会让我们写出更高效率的程序但不要忘记它也是有缺点的:只能用于整型和字符型数据。速度:快于乘法 等同于加减法*参与运算的数据以补码形式出现!(不要弄错啦!)eg: 数字 -1 原码:10000000 00000000 00000000 00000001 反码:11111111 11111111 11111111 1111111
2016-05-30 13:34:27 250
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人