自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 插入排序进行链表排序

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution { public: ListNode *

2016-09-19 10:57:52 395

原创 排序链表

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* fi

2016-09-19 10:56:44 298

原创 归并排序

//堆排序的原理是遍历数组中的值,得到第一个值为最小,与最后一个值对换,再次遍历,第一个值与倒数第二个值替换,以此类推!#include #include #define MAX 255int R[MAX];void Heapify(int s,int m){ /*对R[1..n]进行堆调整,用temp做暂存单元 */ int j,temp; temp=R[s]; j=2*s;

2016-09-19 10:55:28 260

原创 归并排序

#include #include #define MAX 255int R[MAX];void Merge(int low,int m,int high){/* 将两个有序的子文件R[low..m)和R[m+1..high]归并成一个有序的 */ /* 子文件R[low..high] */ int i=low,j=m+1,p=0; /* 置初始值 */ int *R1; /*

2016-09-19 10:54:31 262

原创 选择排序

void choice_sort(vector&array, int n){ if (array.empty()) { return ; } for (int i = 0; i < n;i++) { int min = array[i]; int Index = i; for (int j =

2016-09-19 10:53:30 258

原创 希尔排序

void shell_sort(vector&array, int n){ if (array.empty()) { return; } int j, gap; for (gap = n / 2; gap > 0;gap/=2) { for (j = gap; j < n;j++) {

2016-09-19 10:52:40 190

原创 插入算法

#include #include using namespace std;void Insert_sort(vector&array, int length){ if (length==0) { return; } for (int i = 1; i < length;i++) { for (int j = i; j>

2016-09-19 10:51:47 249

原创 快速排序

#include #include using namespace std;class Quick_sort{public: void quickSort(vector&s, int l, int r) { if (l < r) { int i = l, j = r, x = s[l]; whi

2016-09-19 10:50:19 204

转载 面试中各类二叉树题型的整理

转载来自:http://blog.csdn.net/walkinginthewind/article/details/7518888二叉树是一种特殊的树,二叉树是递归定义的,因此,与二叉树相关的题型基本可以用递归的思想解决,当然有些题目非递归解法也应该掌握,如非递归遍历节点等等。二叉树节点定义如下:struct BinaryTreeNode{ int m_nV

2016-08-27 16:51:21 506

转载 TCP链接(三次握手)和释放(四次握手)

转自:http://longzxr.i.sohu.com/blog/view/189988839.htmTCP报文段首部格式:序号:本报文段所发送的数据的第一个字节的序号。确认号ack:期待收到对方下一个报文段的第一个数据字节的序号确认ACK:占1位,仅当ACK=1时,确认号字段才有效。ACK=0时,确认号无效同步SYN:连接建立时用于同步序号。当S

2016-08-27 16:45:36 462

转载 C++中模版的使用

模板(Template)指C++程序设计语言中的函数模板与类模板,是一种参数化类型机制。模板是C++泛型编程中不可缺少的一部分。C++ templates enable you to define a family of functions or classes that can operate on different types of information.模板就是实现代码重用机制的

2016-08-19 16:15:28 449

转载 C#命名空间

转自:http://dev.yesky.com/msdn/192/2549192.shtml 命名空间提供了一种组织相关类和其他类型的方式。与文件或组件不同,命名空间是一种逻辑组合,而不是物理组合。在C#文件中定义类时,可以把它包括在命名空间定义中。以后,在定义另一个类,在另一个文件中执行相关操作时,就可以在同一个命名空间中包含它,创建一个逻辑组合,告诉使用类的其他开发人员这两个类是如何相关的

2016-08-19 15:29:36 395

翻译 插入排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序、归并排序

插入排序方法:时间复杂度O(n^2)的稳定排序:每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。直接插入排序的算法思路:(1) 设置监视哨r[0],将待插入纪录的值赋值给r[0];(2) 设置开始查找的位置j;(3) 在数组中进行搜索,搜索中将第j个纪录后移,直至r[0].key≥r[j].key为止;

2016-08-14 16:45:11 597

转载 总结23中设计模式应用场景

设计模式主要分三个类型:创建型、结构型和行为型。 创建型:      一、Singleton,单例模式:保证一个类只有一个实例,并提供一个访问它的全局访问点 ;     应用场景:一个无状态的类使用单例模式节省内存资源。     二、Abstract Factory,抽象工厂:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们的具体类。         应用场景:一系列

2016-08-14 16:43:00 513

原创 堆、归并排序

数据结构中的堆,是一颗完全二叉树,以连续地址存储。插入的方式是,先将元素放到vector尾部,然后vector不断和父母节点比较交换,直到找到合适的位置,所以时间复杂度是O(lgN),也就是树的高度。删除第一个元素的方式是,先将最后的元素跟第一个元素交换,然后将最后的元素删除,然后第一个元素再跟两个孩子节点中的一个交换,直到找到合适的位置,所以时间复杂度也是O(lgN)。其中堆排序就是

2016-08-14 16:41:34 284

翻译 状态模式(State)

概念:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。main(),客户CLiftState,电梯状态抽象类CCloseingState,电梯门关闭COpenningState,电梯门打开CRunningState,电梯运行CStoppingState,电梯停止CContext,电梯的控制面板说明:CContext保持电梯的状态,并提供操作的

2016-08-13 20:11:49 254

翻译 观察者模式(Observer),责任链模式,访问者模式(Visitor)

概念:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。行为型模式。main(),IObservable,被观察者接口CHanFeiZiObservable,被观察者韩非子IObserver,观察者接口CLiSiObserver,观察者李斯CZhouSiObserver观察者周斯说明:将观察者聚集到被观察者韩

2016-08-13 20:10:17 3594

翻译 装饰模式(Decorator),迭代器模式(Iterator),组合模式(composite)

装饰模式,动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。属于行为型模式。迭代器模式:概念:提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。main(),客户IProject,产品接口CProject,产品类IIterator,迭代器接口IProjectIterator

2016-08-13 20:07:06 480

翻译 建造者模式(builder),桥梁模式(bridge mode),命令模式(Command mode)

建造者模式,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。说明:CCarModel实现模板方法,Builder负责开始建造产品。建造产品时,构建的顺序由Director或main决定。注意:建造者模式和抽象工厂非常类似。建造者更重视产品建造时的逻辑顺序,而抽象工厂更重视生产出不同型号的产品,抽象工厂不关心顺序。建造者模式属

2016-08-13 20:04:34 1215

翻译 抽象模式,适配器模式(Adapter),模板方法模式(Template method)

抽象工厂,提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。对于工厂方法来说,抽象工厂可实现一系列产品的生产,抽象工厂更注重产品的组合。抽象工厂属于创建型模式。主要用于生产一系列产品,每一个工厂也可以由单件来实现。这里使用模板方式来传递参数,使代码更简洁,适配器模式:适配器模式,使用之处比较特殊,不属于常规设计模式,主要用于不同系统

2016-08-13 20:01:49 1216

翻译 单例模式(singleton),工厂方法模式(factory),门面模式(facade)

CEmperor,需要单例的类说明:很多大臣拜见的皇帝,只有一个。体现在面向对象方面,CEmperor定义一个静态指针,和一个静态函数,私有化构造函数、析构函数、构造函数复制、重载赋值语句。注意:线程安全,采用互斥体的方式实现。Public class Singleton{ Private Singleton(){}; Public staticclas

2016-08-13 19:59:29 1616

翻译 策略模式、代理模式

CContext相当于一个容器,容器中存储策略借口,策略借口可以派生多个实体策略,CContext只是简单的装载和调用策略,CContext里没有逻辑。策略会有更大的自主权,运行更多的逻辑。代理模式:看起来代理模式的结构和策略模式类似,都是由一个类来装载接口的一个实例,策略模式是CContext来装载,代理模式是CWangPo来装载。 CContex

2016-08-13 19:56:29 438

翻译 设计模式中类的关系

类与类之间主要有6种关系,他们分别是:依赖、关联、聚合、组合、继承、实现。他们的耦合度依次增强。                                                           依赖关系的定义为:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。定义 比较晦涩难懂,但在java中

2016-08-13 19:54:03 170

原创 指针、内存和字节

指针指向字符串常量,不能给常量赋值。字符常量是不能被重新赋值的。常量区也是在栈上。在函数体中定义的变量通常在栈上,用malloc、calloc、realloc等分配内存的函数分别得到的就是在堆上。指针本身存在于栈中,而所指向的对象则不一定。二.在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区1.栈,就是那些由编译器在需要的时候分

2016-07-31 11:10:21 354

原创 数据库知识点小结

DDL:数据库模式定义语言,关键字:create、drop、alter;DML:数据库操作语言,关键字:select、insert、delete、update;DCL:数据库控制语言,关键字:grant、remove;DQL:数据库查询语言,关键字:select;多表查询没有指定连接条件,则以笛卡尔积的形式返回结果。select in

2016-07-31 10:39:46 224

原创 Linux知识点小结One

一、Linux系统一般由四个主要部分构成:内核、用户界面、文件结构和实用工具。1.文件结构目录结构:root超级用户目录;home用户目录;bin执行目录;boot引导目录;etc配置目录;dev设备目录;mnt安装目录;op安装目录;lib库目录;user共享目录;var数据目录;proc虚拟目录;文件和目录操作命令1.ls命令       这个命令就

2016-07-31 10:36:14 257

原创 C++常见知识点总结

1.采用#include“”方式进行包含的头文件表示让编译器在编译器的预设标准路径下去进行搜索相应的头文件,如果找不到则报错。而#include "":表示首先工作目录下开始搜索,对于自定义文件搜索比较快,然后搜索整个磁盘。2.“%-30.4f”在print中使用,其中,-:左对齐, 30:最小字段宽度,.4:精确度保留小数4位,e:科学计数法;3.static与const

2016-07-31 10:34:31 321

原创 操作系统知识点总结1

多道程序执行分为:顺序执行和并发执行;顺序执行可再现,并发执行(伪并发)不可再现。程序的顺序执行四个特征:1.顺序性;2.封闭性;3.程序执行结果的确定性;4.程序执行结果的可再现性。程序的并发执行有四个特征:1.在执行期间并发程序相互制约;2.程序与计算不再一一对应;3.并发程序的执行结果不可再现;4.程序的并行执行与程序的并发执行。银行家算法用于避免死锁。资源分配图简化法是

2016-07-25 21:55:11 655

原创 网络基础知识点总结1

Telnet(端口号23)是位于应用层上的一种协议,是一个通过创建虚拟终端提供连接到远程主机终端仿真的TCP/IP协议。这一协议需要通过用户名和口令进行认证。应用Telnet协议能把本地用户使用的计算机变成远程主机系统的一个终端。ssh端口号22交换机计费方式与采用的计费系统、业务的类型以及入网的方式有关,主要有如下三种:1.CAMA计费系统集中式自动通话记账系统的

2016-07-25 21:54:02 463

原创 循环队列

设计循环队列的原因:队列的顺序存储结构称为顺序队列,顺序队列实际上是运算受限的顺序表,和顺序表一样,顺序队列也是必须用一个向量空间来存放当前队列中的元素。入队,出队操作原理:由于队列的队头和队尾的位置是变化的,因而要设两个指针和分别指示队头和队尾元素在队列中的位置,它们的初始值地队列初始化时均应置为0。入队时将新元素插入所指的位置,然后将加1。出队时,删去所指的元素,然后将加1

2016-07-22 21:39:47 936

原创 C++中内存(堆和栈)

一.在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区1.栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。2.堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动

2016-07-22 21:36:13 311

原创 计算机网络基础

计算机网络的基本目的是实现数据通信和资源共享,计算机网络的主要功能归结为:1.资源共享2.数据通信3.提高计算机的可靠性和可用性4.分布式处理数据通信:是计算机或其他数字终端设备之间通过通信信道进行的数据交换。影响数据通信的质量的两个最主要指标:1.数据传输速率;2.误码率(表示一段之间内接收到的错误比特数与传输的总比特数之比)网路传输协议:

2016-07-20 16:20:35 583

原创 数据结构之—图

1.图的两种遍历方法:1) 深度优先搜索遍历深度优先搜索DFS遍历类似于树的前序遍历。其基本思路是:a) 假设初始状态是图中所有顶点都未曾访问过,则可从图G中任意一顶点v为初始出发点,首先访问出发点v,并将其标记为已访问过。b) 然后依次从v出发搜索v的每个邻接点w,若w未曾访问过,则以w作为新的出发点出发,继续进行深度优先遍历,直到图中所有和v有路径相通的顶点都被访问到。

2016-07-20 16:03:50 506

原创 线程与进程之间的关系和区别

线程共享的环境包括:进程代码段,进程的公有数据(利用这些数据,线程很容易实现相互间的通讯),进程打开的文件描述符,信号的处理器进程的当前目录和进程用户ID与进程组ID。进程拥有这许多共性的同时,还拥有自己的个性。有了这些个性,线程才能实现并发性。这些个性包括:1.线程ID。2.寄存器组的值。3.线程的堆栈(堆栈是保证线程独立运行所必需的)。4.错误码的返回值。5.线程的信号屏蔽码(但所有的

2016-07-20 15:56:01 2988

原创 操作系统的主要功能

1.操作系统(Operating System,简称OS)是一管理电脑硬件与软件资源的程序,同时也是计算机系统的内核与基石。操作系统是一个庞大的管理控制程序,大致包括5个方面的管理功能:进程与处理机管理、作业管理、存储管理、设备管理、文件管理(1)作业管理:包括任务、界面管理、人机交互、图形界面、语音控制和虚拟现实等;(2)文件管理:又称为信息管理;(3)存储管理:实质是对存储“空间”的管理,

2016-07-20 15:50:08 62964

原创 哈希表的知识点介绍

散列表(HASH TABLE)也叫哈希表,是基于快速存取的角度设计的,也是一种典型的“以空间换时间”的做法。是根据关键码值而直接进行访问的数据结构。它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度,这个映射函数叫散列函数,存放记录的数组叫散列表。hash表既满足了数据的查找方便,同时不占用太多的内容空间,使用也十分方便。哈希表也有一些缺点它是基于数组的,数组创建后难于扩展某些

2016-07-08 09:29:27 840

原创 关于二叉树与树(森林)的知识点详解

1.二叉树的遍历及优缺点:前序遍历用来实现目录结构的显示。中序遍历用来做表达式,在编译底层实现的时候,可以实现加减乘数后序遍历可以用来实现计算目录内的文件,占用的数据大小。二叉树最复杂的还是删除,这里特别说明一下,就像书中所说的,为了减少算法的运行时间,在一些情况下,实际上对于删除操作一个好的办法就是做一下标记,并不是真实删除,这种方法叫 做懒惰删除(英文:lazy

2016-07-08 09:26:57 4306

原创 关于数据结构之树的一些总结

树结构中,结点总数(包括根和叶子)=边数(等于度)+11.二叉树性质1:对任何一颗二叉树T,如果其终端节点数为n0,度为2的节点数为n2,则n0 = n2+1;性质2:具有n个结点的完全二叉树的深度为|log2 (n)|+1二叉树进行层次遍历,应借助一个队列,二叉树的先序、中序、后序的非递归遍历需要用到栈。(1)完全二叉树一、叶子结点只可能在最大的两

2016-07-08 09:20:50 1805

空空如也

空空如也

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

TA关注的人

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