摘要:
归并类的排序算法 归并:将两个或两个以上的有序表组合成一个新的有序表。 内部排序中,通常采用的是 2-路归并排序。即:将两个位置相邻的记录有序子序列归并为一个记录有序的序列。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用 阅读全文
摘要:
选择类的排序算法 简单选择排序算法 采用最简单的选择方式,从头到尾扫描待排序列,找一个最小的记录(递增排序),和第一个记录交换位置,再从剩下的记录中继续反复这个过程,直到全部有序。 具体过程: 首先通过 n –1 次关键字比较,从 n 个记录中找出关键字最小的记录,将它与第一个记录交换。 再通过 n 阅读全文
摘要:
之前有过整理链表等的概念和基本算法。比较重要的是插入,删除,遍历,建表(尾插法,头插法) 回忆链表尾部插入结点: 1 #include <iostream> 2 using namespace std; 3 4 typedef struct Node{ 5 int data;//数据域 6 Node 阅读全文
摘要:
冒泡排序算法: 总的来说就是两两交换,反复直到有序,第一个记录和第二个记录,若逆序则交换,然后比较第二个和第三个记录,以此类推,直到第 n 个记录和第 n-1个记录比较完毕为止,第一趟排序,结果关键字最大的记录被安排在最后一个位置。对前 n-1个记录继续冒泡排序,使得关键字次大的记录安排在第 n-1 阅读全文
摘要:
UML定义的关系主要有六种:依赖、继承、关联、实现、聚合和组合。这些类间关系的理解和使用是掌握和应用UML的关键,而也就是这几种关系,往往会让初学者迷惑。这里给出这六种主要UML关系的说明和类图描述,一看之下,清晰明了;以下就分别介绍这几种关系: 继承 指的是一个类(称为子类、子接口)继承另外的一个 阅读全文
摘要:
问题:定义一个空的类型,里面没有任何的成员变量或者成员函数,对这个类型进行 sizeof 运算,结果是? 结果是1,因为空类型的实例不包含任何信息,按道理 sizeof 计算之后结果是0,但是在声明任何类型的实例的时候,必须在内存占有一定的空间,否则无法使用这些实例,至于占据多少内存大小,由编译器决 阅读全文
摘要:
OSI 计算机网络7层模型 TCP/IP四层网络模型 传输层提供应用间的逻辑通信(端到端),网络层提供的是主机到主机的通信,传输层提供的是可靠服务。 TCP 中常说的握手指的是:连接的定义和连接的建立的过程。IP 协议是无连接的,但是 TCP 是有链接的。 端口:数据链路层依靠 mac 地址寻址,网 阅读全文
摘要:
基本的五类排序算法(插入,选择,交换,归并,基数排序)。排序:将数据元素的一个任意序列,重新排列成一个按关键字有序的序列。 排序的稳定性:待排序列中有大于等于2个相同的项,且排序前后,相同项的相对位置是否发生了变化(如果变化了就是不稳定的排序,不变化就是稳定的) 内部排序:若整个排序过程不需要访问外 阅读全文
摘要:
压力才有动力,15年中旬就要准备实习,学习复习学习复习学习复习学习复习……无限循环中,好记性不如烂笔头……从数组开始,为主干。 c 的array由一系列的类型相同的元素构成,数组声明包括数组元素个数和类型,c 中的数组参数是引用形式传参(传址调用),而常量标量是按值传递。 //[]方括号表示声明的是 阅读全文
摘要:
直译就是xxxx 发生了一种冲突!比如今天发现的这个错误,实属低级! 本次错误的原因是:函数没有先声明,便写在了主函数后面!应该是先声明,后定义,如果只有定义,则定义必须写在主函数上方。通过查资料,有总结了一些常见引起这类错误的原因: 1、因为没有先做函数声明,而函数位于main()之后。 2、头文 阅读全文
摘要:
之前说到,朴素的匹配,每趟比较,都要回溯主串的指针,费事。则 KMP 就是对朴素匹配的一种改进。正好复习一下。 KMP 算法其改进思想在于: 每当一趟匹配过程中出现字符比较不相等时,不需要回溯主串的 i指针,而是利用已经得到的“部分匹配”的结果将模式子串向右“滑动”尽可能远的一段距离后,继续进行比较 阅读全文
摘要:
复习串的朴素模式匹配算法 模式匹配 : 子串定位运算,在主串中找出子串出现的位置。 在串匹配中,将主串 S 称为目标(串),子串 T 称为模式(串)。如果在主串 S 中能够找到子串 T, 则称匹配成功,返回 第一个 和 子串 T 中 第一个字符 相等 的 字符 在主串 S 中的 序号,否则,称匹配失 阅读全文
摘要:
继续接去年的常见数据结构和算法总结 系列随笔记录 一、计算机里进行非数值处理的对象基本上是字符串数据,比处理浮点和整数都要复杂 string串定义:由 0 个或多个 字符 组成的 有限的 序列,通常记为:s =“a1 a2 a3 … ai …an” ( n≥0 ,且n是有限的)。其中的引号不属于串, 阅读全文
摘要:
先看tomcat里用到的代码: //然后开始动画 //把图片放到animationImages,接受数组参数 self.tom.animationImages = arrayImage; //设置时间间隔,81张图,图多就播的时间稍微长,否则短 self.tom.animationDuration 阅读全文
摘要:
这些东西,等用的时候查资料就行,用的多了,自然就记住了,大概过一下 发现一个不错的 ios 学习博客:http://www.cnblogs.com/kenshincui,非常好,推荐看看。FOundation系列笔记,是作为个人复习用,内容除了书本,个人经验还有一些是借鉴的它的博文。 Foundat 阅读全文
摘要:
很多程序经常使用的最普通,比较常见的,也是比较简单的一个算法 1、普通方法,借助一个额外内存变量实现交换: #include <iostream> using namespace std; int main(int argc, const char * argv[]) { int a; int b; 阅读全文
摘要:
转载和修正,原文连接:http://www.cnblogs.com/911/archive/2008/05/20/1203477.html 位运算是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的问题。 C语言提供了6个位操作运算符。 这些运算符只能用于整型操作数,即只能用于带符号或无符号 阅读全文
摘要:
ANSI C规定:#前可以有空格或者tab,#和指令其余部分之间也可以有空格,可以出现在任何地方,作用域从定义处到文件结尾。 因为预处理开始前,系统会删除反斜线和换行符的组合,故可以把指令扩展到几个物理行,这些物理行组成单个逻辑行。 //每个#define行(指逻辑的行):三部分组成 //指令本身 阅读全文
摘要:
Block(oc 的数据类型,很常用,本质是c结构体) 类似内联函数,从源代码层看,有函数的结构,而在编译后,却不具备函数的性质。编译时,类似宏替换,使用函数体替换调用处的函数名 Block封装了一段代码,可以在任何时候执行 Block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回 阅读全文
摘要:
ARC(是编译器特性) ARC是自iOS 5之后增加的新特性,完全消除了手动管理内存的烦琐,编译器会自动在适当的地方插入适当的retain、release、autorelease语句。你不再需要担心内存管理,因为编译器为你处理了一切 ARC 是编译器特性,而不是 iOS 运行时特性,它也不是类似于其 阅读全文
摘要:
内存管理基本原理(最重要) 移动设备的内存极其有限(iphone 4内存512M),每个app所能占用的内存是有限制的(几十兆而已)。 当app所占用的内存较多时,系统会发出内存警告,这时得回收一些不需要再使用的内存空间。比如回收一些不需要使用的对象、变量等 管理范围:任何继承了NSObject的对 阅读全文
摘要:
oc 的分类-Category 通过分类(category)可以以模块的方式向现有的类添加方法。 它提供了一种简单的方式, 用它可以将类的定义模块化到相关方法的组或分类中。它还提供了扩展现有类定义的简便方式,并且不必访问类的源代码,也无需创建子类。 /* 文件名:Person.h */ #impor 阅读全文
摘要:
oc 里的字符串 字符串的快速创建(最简单的方法) NSStirng *str = @“Hello”;//oc的字符串都是@“”形式的 oc的字符串也是类的对象,是NSString类的对象,创建没有那么麻烦不用[ ],使用面向对象的思想来操纵字符串。 char *name = "xxxxx";//c 阅读全文
摘要:
oc 里的匿名对象 oc 这里,很少用到,因为并不适用于oc的内存管理,只是面试笔试也许出现,要求能看懂,不要在项目里这样写,因为写匿名对象,会造成内存泄露 #import <Foundation/Foundation.h> @interface Car : NSObject { @public i 阅读全文
摘要:
oc类的声明和定义的常见错误 1、只有类的声明,没有类的实现 2、漏了@end 3、@interface和@implementation嵌套,也就是@interface或者@implementation和@end必须成对出现!两者中间不能嵌套任何别的。 4、成员变量没有写在括号里面 5、方法的声明写 阅读全文
摘要:
有一定 c++或者 java 基础,过一遍 oc 语法即可,都是相通的,个人认为难点是 oc 的内存管理,虽然有了 ARC,但是也需要学习下,因为有旧软件的维护。 建立在C语言的基础上,增加了一层小范围的面向对象的语法(保留了面向对象最精华的部分,oc的内容没有java多,而java的内容没有c++ 阅读全文
摘要:
IOS的生态系统 IOS生态系统不仅仅是指产品,更重要的是指 iPhone/iPad/iPod/Mac +iCloud+App整个系统,包括Siri (部分设备不支持)、FaceTime、Safari、Game Center、 地图、Passbook、电话、邮件。苹果所有移动设备都使用自己的OS,且 阅读全文
摘要:
督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正。 问题1、我们知道,将一个数组赋给另一个数组,就是将一个数组的元素逐个赋值给另一数组的对应元素,相应的,将一个vector 赋给另一个vector,也是将一个vector 的元素逐个赋值给另一vector 的对应元素: //将一个 阅读全文
摘要:
督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正。 c和c++的数组和指针都属于低级的复合数据类型,比如c++的数组,类似vector容器,指针类似迭代器。低级的数据类型优势是速度快。但是容易出错,不好调试。现代c++程序,应该避免使用。 内置数据类型—数组,不方便存储变长数据, 阅读全文
摘要:
督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正。 //开头 #include <bitset> using std::bitset; 问题1、标准库bitset类型(模版) 需要处理二进制位的时候,可以使用c++标准库提供的bitset类型,它也是类模版,类似vectro容器, 阅读全文
摘要:
督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正。 标准库vector类型初探,同一种类型的对象的集合(类似数组),是一个类模版而不是数据类型,学名容器,负责管理 和 存储的元素 相关的内存,因为vetcor是类模版,对应多个不同类型,比如int,string,或者自己定义的数据 阅读全文
摘要:
督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正。 问题1:养成一个好习惯,在头文件中只定义确实需要的东西 using namespace std; //建议需要什么再using声明什么,最好不使用这个偷懒的写法 问题2:C++定义了一个内容丰富的抽象数据类型的标准库,最重要的两 阅读全文
摘要:
就是问,在面向对象思想里,先有对象还是先有类,乍一看和先有鸡蛋还是先有鸡是一类问题,其实不然!这个问题,在lz考研复试的时候被面试官问过,一模一样,如今又在一个笔试题里看到了类似的题目,眨一下,有人会说,没有类,哪里来对象呢?其实不然,这个问题很经典,考的就是oo思想和软件工程的意识。 我经历之后的 阅读全文
摘要:
督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正。 一:大小端的概念 Big-Endian和Little-Endian(见计算机存储的大小端模式解析) 二:浮点数的机器级表示 (见从如何判断浮点数是否等于0说起——浮点数的机器级表示) 三:c++的基本的内置类型: 1)算术类型, 阅读全文
摘要:
题目中针对的0,对于浮点类型,具体指的是0.0,自然对于指针类型就是NULL,对于整型就是0,一些常见笔试面试题中常出现,不要较真,十分欢迎提出改进意见。 本文很大程度上收到林锐博士一些文章的启发,lz也是在大学期间读过,感觉收益良多,但是当时林锐也是说了结论,lz也只是知其然,而不知其所以然,为什 阅读全文
摘要:
一、队列(queue) 队列和栈一样,在实际程序的算法设计和计算机一些其他分支里,都有很多重要的应用,比如计算机操作系统对进程 or 作业的优先级调度算法,对离散事件的模拟算法,还有计算机主机和外部设备运行速度不匹配的问题解决等,很多很多。其实队列的本质还是线性表!只不过是一种特殊的或者说是受限的线 阅读全文
摘要:
http://blog.csdn.net/hackbuteer1/article/details/7722667 原作者文章链接,写得很好,没必要再重新分析了,看这个就够了。一般在《计算机组成原理》,或者《微机原理》,或者《汇编语言》等课程中也会有介绍,不过没有这么详细透彻罢了。红色笔记是我的注解。 阅读全文
摘要:
俗话说得好,线性表(尤其是链表)是一切数据结构和算法的基础,很多复杂甚至是高级的数据结构和算法,细节处,除去数学和计算机程序基础的知识,大量的都在应用线性表。 一、栈 其实本质还是线性表:限定仅在表尾进行插入或删除操作。 俗称:后进先出 (LIFO=last in first out结构),也可说是 阅读全文
摘要:
数学中一元n次多项式可表示成如下的形式: Pn(x)=p0+p1x+p2x^2+…+pnx^n (最多有 n+1 项,n +1 个系数唯一确定她) (1)请设计一套接口用以表示和操作一元多项式 (2)根据上述设计实现一元n次多项式的加法运算 (3)根据上述设计实现一元n次多项式的乘法运算 分析: 题 阅读全文
摘要:
一、静态单链表 在不支持动态空间分配的环境中,要使用链表存储数据,那么可采用静态链表的方法:即在一块预分配的存贮空间中,用下标作为指针链来构成链式结构。 //既然是静态链表,那么可以使用一维数组实现存储,java没有指针,那么就用这来使用链表结构 //在不支持动态空间分配的环境中,要使用链式结构技术 阅读全文