自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

waponx的专栏

操千曲尔后晓声,观千剑尔后识器。

  • 博客(11)
  • 资源 (2)
  • 收藏
  • 关注

原创 快速排序

快速排序是已知的在实践中最快的排序算法。它的最坏时间复杂度是O(n^2),平均时间复杂度是O(nlogn)。快速排序的算法主要的思想在于分部算法(partition),下面的步骤是基于升序排序的假设:    1.选取合适的枢纽。    2.遍历整个数组,将数组中小于或者等于枢纽的元素放在左边,大于或者等于枢纽的元素放在右边。快排的最坏情况出现在输入的数据是有序的,且

2016-04-21 22:25:50 753

原创 堆排序

堆排序的最坏时间复杂度是O(nlogn),平均时间复杂度是O(nlogn)。但是堆排序的时间常数比较大,因此从平均来看堆排序的时间复杂度反而是最差的。基本接口:1.插入:插入一个新元素的时候,首先将这个新元素放在最后,因为新元素的插入操作可能会破坏堆的性质,因此执行上游操作。2.删除:删除一个新元素的时候,首先要将堆顶元素和最后一个元素交换。然后将堆的大小减一。删除

2016-04-21 17:31:32 1178

原创 C++ Q&A(六)构造函数的常见问题

声明:Q&A系列的文章是我在平时自己遇到的或者看到的一些问题,本着再小的问题也需要有人解答的想法,将这些问题和答案整理出来。欢迎和我讨论问题,同时也欢迎转载Q&A系列的文章。前两篇文章说了new运算符的有些相关知识,现在我们再来探讨一下有关C++的构造函数的问题。下面的问题都是在面试中很 经常被问到的。1.构造函数可以是虚吗?我在面CVTE的

2016-04-14 15:06:08 797

原创 C++ Q&A(五) 再论new操作符

声明:Q&A系列的文章是我在平时自己遇到的或者看到的一些问题,本着再小的问题也需要有人解答的想法,将这些问题和答案整理出来。欢迎和我讨论问题,同时也欢迎转载Q&A系列的文章。new operator: 指的是一般情况下我们使用的new运算符,C++primer中叫做new experssionoperator new:operator new 是一个函数。用来分配空间,和C标准

2016-04-14 14:32:52 484

原创 C++Q&A(二) 变长数组和变长结构体是什么

声明:Q&A系列的文章是我在平时自己遇到的或者看到的一些问题,本着再小的问题也需要有人解答的想法,将这些问题和答案整理出来。欢迎和我讨论问题,同时也欢迎转载Q&A系列的文章。第一个问题 什么是变长数组变长数组是C99中的新加入的特性,要理解这个变长数组很简单,只需一段代码就可以了。int a[10]; //定长数组int b[n]; //变长数组,n可以是任何正

2016-04-14 14:16:52 2233

原创 C++ Q&A(一)C++与C的区别

在C语言中,“数据”和“数据处理”是分开来声明的,也就是说语言本身并没有支持“数据和函数”之间的关联性,这样的程序方法称为程序性的,也就是面向结构的。它们由一组“分布在各个功能为导向的函数中“的算法所驱动,它们处理的是共同的外部数据。(摘自:深度探索C++对象模型)按照一般入门的人的理解,就有了下面的例子:bool print(char name[20], int hight, int

2016-04-13 22:22:50 923

转载 Linux系统编程——I/O多路复用select、poll、epoll的区别使用

转载自:http://blog.csdn.net/tennysonsky/article/details/45745887I/O 多路复用技术是为了解决进程或线程阻塞到某个 I/O 系统调用而出现的技术,使进程不阻塞于某个特定的 I/O 系统调用。select(),poll(),epoll()都是I/O多路复用的机制。I/O多路复用通过一种机制,可以监视多个描述符,一旦

2016-04-12 21:09:58 1164

转载 同步和异步

转载自:http://blog.csdn.net/tennysonsky/article/details/45111623同步,可以理解为在执行完一个函数或方法之后,一直等待系统返回值或消息,这时程序是出于阻塞的,只有接收到返回的值或消息后才往下执行其他的命令。  异步,执行完函数或方法后,不必阻塞性地等待返回值或消息,只需要向系统委托一个异步过程,那么当系

2016-04-12 16:55:50 1258

原创 C++ Q&A(三) C++的内存模型

先介绍一下内存的分段机制:在虚拟内存中,一个程序为了方便共享和保护,就会使用分段。分段是把一个程序分成独立的地址空间,每个段都有自己的基址和长度,在纯分段系统给中,段内地址是一段连续的内存,在段页式系统中,段内地址也分成页号和页内地址,允许离散的分配空间。gcc在编译程序的时候,把程序分成了很多个段,下面是几个比较经典的段:上面这个图是从上到下,代表的是从高地址到低

2016-04-11 16:19:15 657

原创 线程同步

几个定义:    1.什么是临界资源?        在多线程环境下,需要共享的资源,比如打印机这类资源,就是临界资源。    2.什么是临界区?        在多线程的环境下,有时候我们会访问一些全局资源(简单的来说就是要和其他线程共享的资源),比如数据库连接。一个进程只有一个数据库连接,在这种情况下这个数据库连接就是共享的资源,也就是临界资源。而访问临界资源的代码就是临界区。

2016-04-11 15:27:26 423

原创 快排的改良版——内省式排序

快速排序是一种很快的算法,它平均的时间复杂度WieO(nlgn), 最坏时间复杂度为O(n^2)。但是快排有很多改良版,其中一种就是内省式的快排,在STL中的快快排使用的就是这种算法。 1.为什么需要这种算法因为快排在面对小数组(比如大小为10的数组)且基本有序的情况下,它的表现还没插入排序要好。因为数组的基本有序,使得插入排序不用很多次的执行元素的移动,并且可以避免递归。 在SG

2016-04-10 23:31:22 3574

简易聊天程序

简易的聊天程序示例,包含了Client和Server的源代码。

2016-05-09

B树的基本操作(VS2012项目文档)

B树的基本操作(插入,分裂,删除),VS2012项目文档

2015-08-24

空空如也

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

TA关注的人

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