LeetCode Sort List(链表快速排序)

Sort a linked list in O(n log n) time using constant space complexity. 看到O(n log n)这个复杂度就想到了快速排序法。快速排序法主要思想为取一个基准点,采用交换+分治法完成快速排序。 对于单链表的快速排序,不能从后面开...

2016-10-08 17:17:30

阅读数 778

评论数 0

LeetCode Odd Even Linked List

Given a singly linked list, group all odd nodes together followed by the even nodes. Please note here we are talking about the node number and not th...

2016-10-06 23:51:08

阅读数 239

评论数 0

LeetCode Construct Binary Tree from Traversal

1.Construct Binary Tree from Preorder and Inorder Traversal 根据二叉树前序遍历和中序遍历构造一颗二叉树。 现在有前序遍历4213769,中序遍历为1234679。根据前序和中序遍历的概念,构造一棵二叉树如下步骤: (1) 设前序遍历的下标...

2016-09-26 10:53:56

阅读数 177

评论数 0

LeetCode Invert Binary Tree

Invert a binary tree. 4 / \ 2 7 / \ / \ 1 3 6 9 to 4 / \ 7 2 / \ / \ 9 6 3 1 反转二叉树,首先采用递归的方式。先遍历作左子树,当...

2016-09-25 16:09:41

阅读数 195

评论数 0

LeetCode Pascal's Triangle II

Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3, Return [1,3,3,1]. Pascal三角形也叫杨辉三角形。杨辉三角形按如下性质进行排列:      ...

2016-09-24 19:51:05

阅读数 221

评论数 0

LeetCode Rotate Function

Given an array of integers A and let n to be its length. Assume Bk to be an array obtained by rotating the array A k positions clock-wise, we defi...

2016-09-24 11:41:06

阅读数 210

评论数 0

生产者消费者同步

一个生产者生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之间设置一个具有多个缓冲区的缓冲池,生产者将它生产的产品放入一个缓冲区中,消费者可以从缓冲区中取走产品进行消费,显然生产者和消费者之间必须保持同步,即不允许消费者到一个空的缓冲区中取产品,也不允许生产者向...

2016-09-19 21:44:03

阅读数 178

评论数 0

进程间通信—管道

1. 管道 Linux 使用fork创建子进程,父进程与子进程并不共享堆栈段和数据段,他们之间通过管道进行通信。管道是一种两个进程之间进行单向通信的机制。管道称为半双工管道。管道具有以下特点: (1) 数据只能由一个进程流向另一个进程(一个读管道,一个写管道),如果需要进行全双工通信,需要建立两个...

2016-09-07 23:26:29

阅读数 178

评论数 0

Select函数实现原理分析

本文转自 http://blog.csdn.net/codejoker/article/details/5404442?locationNum=1 select 需要驱动程序的支持,驱动程序实现fops内的poll 函数。 select 通过每个设备文件对应的 poll 函数提供的信息判断当...

2016-09-06 10:09:22

阅读数 1165

评论数 0

Linux等待队列

多路IO复用select采用等待队列机制让用户程序没有资源读/写时睡眠,有资源读/写时唤醒用户程序。 等待队列以双向循环链表为基础数据结构,与进程调度紧密结合,用于实现内核的异步事件通知机制,也可用于同步对系统资源的访问。 1. 数据结构 (1) 每个等待队列都有一个等待队列头,该结构定义如下: ...

2016-09-06 09:19:23

阅读数 289

评论数 0

Linux自旋锁

1. 自旋锁 自旋锁最初是为了在多处理系统(SMP)设计,实现在多处理器情况下保护临界区。 自旋锁的实现是为了保护一段短小的临界区代码,保证这个临界区的操作是原子的。在Linux内核中,自旋锁通常用于包含内核数据结构的操作(如wait_queue等),用于保证操作内核中的数据结构的原子性。如果内核...

2016-09-04 19:11:03

阅读数 176

评论数 0

网络大数运算之传输表达式和结果

客户端每次可以发送一个表达式到客户端,客户端解析该表达式字符串,进行相应的运算结果求解。客户端表达式传输采用结构体,结构体定义如下: 由于使用TCP协议进行传输,采用send()发送该结构体,需要对结构体指针转化为char*,发送一个字符流。但因为结构体内存对齐原因,两个变量之间可能存在空白区...

2016-08-30 19:57:50

阅读数 208

评论数 0

整数大数乘法

整数大数据进行运算的时候并不能简单使用一个变量去存储结果,因为运算结果可能超出该变量能存储的最大字节数。因此可以使用一个SeqList或者STL中的vector对数据进行存储。 在进行乘法运算时,根据乘法的运算规则,每次对一列求和即可,求和完成要求的进位。最后每一列求和完的结果和即为乘法结果。 ...

2016-08-28 09:35:52

阅读数 398

评论数 0

MySQL Query Cache机制

MySQLQuery Cache保存查询返回的结果集。当查询命中缓存时,MySQL跳过解析、优化和执行阶段,直接返回查询结果。 Query Cache系统会跟踪查询中涉及的每一张表,如果这些表发生变化,那么和这个表相关的所有缓存数据都会失效。这种机制效率看起来比较低,因为在数据表变化时,查询到的结...

2016-08-21 22:30:48

阅读数 309

评论数 0

MySQL 哈希索引

哈希索引基于哈希表实现,只有精确匹配索引所有列的查询才有效。对于每一行数据,存储引擎都会对所有的索引列计算一个哈希码,哈希码是一个较小的值,并且不同键值计算出来的哈希码也不同。哈希索引将所有哈希码存放在索引中,同时在哈希表存放指向数据行的指针。 在哈希索引中,采用桶(bucket)来表示一条或多条...

2016-08-19 22:49:44

阅读数 511

评论数 0

MySql数据库的连接和事务处理

在写聊天工具的服务端的时候,需要使用到数据库对客户端相关信息的存储,例如用户信息、用户相关的好友信息、用户所加入的群,讨论组、聊天时的离线消息,消息的历史记录等。用户在对相应的操作时候,后台数据库要进行实时的更新。本次主要描述使用QT库进行MySql数据的连接和相关的事务处理。 1.  MySq...

2016-08-16 23:22:53

阅读数 485

评论数 0

旋转数组的最小元素

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。 例如有如下数组 旋转之后如下 此时需要找出当前旋转数组的最小值,由于数组是递增的,所以旋转之后前面的数组元素会大于后面数组的元素,也就是数组{4, 5}大于{1,...

2016-08-04 23:16:22

阅读数 252

评论数 0

C++智能指针auto_ptr

auto_ptr用来防止内存泄露,通过管理指针对空间的拥有权来进行动态管理内存。尤其是在拷贝和赋值的时候容易出现内存泄漏或者多次释放同一内存空间。 template auto_ptr(auto_ptr & __a) : _M_ptr(__a.release()) { }...

2016-07-31 21:22:54

阅读数 208

评论数 0

C++ 继承

1. 隐藏 如果继承一个类并且对它的函数进行重新定义,可能会出现两种情况。 (1)在派生类中和基类定义的函数函数名,返回值和参数类型一致,这叫做函数的重定义 (2)如果基类的成员函数为虚函数,派生类定义的同名同参同返回值的函数叫做重写。 针对重定义,有如下代码: class Base { ...

2016-07-30 21:17:19

阅读数 222

评论数 0

浅析C++const

1.值替代 在使用宏#define进行常量替换时,仅仅只是文本替代,不进行类型检查。 #define BUFFSIZE 100 int buf[BUFFSIZE] 进行预处理 kernel@Ubuntu:~/Desktop/const$ cpp const.cpp const.i kerne...

2016-07-24 23:31:54

阅读数 192

评论数 0

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