自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

神奕的专栏

个人学习笔记~~

  • 博客(9)
  • 资源 (6)
  • 收藏
  • 关注

原创 【Linux多线程】三个经典同步问题

在了解了《同步与互斥的区别 》之后,我们来看看几个经典的线程同步的例子。相信通过具体场景可以让我们学会分析和解决这类线程同步的问题,以便以后应用在实际的项目中。一、生产者-消费者问题问题描述:一组生产者进程和一组消费者进程共享一个初始为空、大小为 n 的缓冲区,只有缓冲区没满时,生产者才能把消息放入到缓冲区,否则必须等待;只有缓冲区不空时,消费者才能从中取出消息,否则必须等待。由于缓冲区是临界资源,

2015-04-30 21:17:00 6971

原创 【Linux多线程】同步与互斥的区别

很多人把同步与互斥这两个概念混淆,这里说一下它们的区别。一、同步与互斥的区别1. 同步同步,又称直接制约关系,是指多个线程(或进程)为了合作完成任务,必须严格按照规定的 某种先后次序来运行。例如,线程 T2 中的语句 y 要使用线程 T1 中的语句 x 的运行结果,所以只有当语句 x 执行完成之后语句 y 才可以执行。我们可以使用信号量进行同步:semaphore S=0; // 初始化信号量T

2015-04-29 23:11:45 12287 1

原创 华为OJ2051-最小的K个数(Top K问题)

一、题目描述描述:输入n个整数,输出其中最小的k个。输入:输入 n 和 k 输入一个整数数组输出:输出一个整数数组样例输入:5 21 3 5 7 2样例输出:1 2二、Top K问题对于 Top K 问题有很多种解法。解法一:排序相信很多人会首先想到这种方法,先把数组按升序/降序进行排序,然后输出 K 个最小/最大的数。常规的排序方法时间复杂度至少是Θ(nlog2n)Θ(nlog_2n)。

2015-04-25 20:08:45 2398 2

原创 华为OJ1964-求解立方根(牛顿迭代法)

一、题目描述描述:计算一个数字的立方根,不使用库函数。函数原型double getCubeRoot(double input)输入:待求解参数 double类型输出:输出参数的立方根,保留一位小数样例输入:216样例输出:6.0二、解题报告本题要求一个数的立方根的近似值,精确到小数点后的一位。这里使用 牛顿迭代法 求近似值。牛顿迭代法,又称为牛顿-拉夫逊(拉弗森)方法(Newton-Raphs

2015-04-24 16:42:22 6877

原创 华为OJ2288-合唱队(最长递增子序列)

一、题目描述描述:N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学不交换位置就能排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1, 2, …, K,他们的身高分别为T1, T2, …, TK,则他们的身高满足T1 < T2 < … < Ti , Ti > Ti+1 > … > TK (1 <= i <= K) 。 你的任务是,已知所有N位同学

2015-04-24 13:04:01 5087 1

原创 华为OJ2011-最长公共子串

一、题目描述描述:计算两个字符串的最大公共子串(Longest Common Substring)的长度,字符区分大小写。输入:输入两个字符串输出:输出一个整数样例输入:asdfas werasdfaswer样例输出:6二、解题报告与最长公共子序列(参见 动态规划DP)一样,最长公共子串也可以使用动态规划解决,只不过思路不太一样。准确地说,是打表的方式不一样。举个例子:s1 = bab,s2 = c

2015-04-23 11:55:33 1485

原创 【Unix编程】进程间通信(IPC)

Linux进程间通信(IPC)进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两个进程IPC。一、管道管道,通常指无名管道,是 UNIX 系统IPC最古老的形式。1

2015-04-21 20:42:47 3954 1

原创 可利用空间表(Free List)

写这篇文章的动因是因为 2015 年 04 月 02 日的阿里在线笔试题考到了这个知识点。我当时模模糊糊的写了一些,估计写的也不对,所以在这里总结一下。原题 常常会有频繁申请、释放内存的需求,比如在发送网络报文时,每次都要分配内存以存储报文,等报文发送完成后又需要删除报文。 为了避免频繁的new/delete对系统带来的开销,需要实现一个通用的FreeList机制。使用者总是从free

2015-04-08 10:49:30 5970 1

原创 Cracking the Coding Interview 150题(二)

3、栈与队列3.1 描述如何只用一个数组来实现三个栈。3.2 请设计一个栈,除pop与push方法,还支持min方法,可返回栈元素中的最小值。pop、push和min三个方法的时间复杂度必须为O(1)。3.3 设想有一堆盘子,堆太高可能会倒下来。因此,在现实生活中,盘子堆到一定高度时,我们就会另外堆一堆盘子。请实现数据结构SetOfStacks,模拟这种行为。SetOfStacks应该由多个栈组成,

2015-04-07 02:22:12 2003

基于MFC的简易计算器(表达式解析)

MFC实现的简易计算器:用编译原理方法(词法分析和语法分析)对表达式进行解析,判断其合法性;并通过后缀表达式进行求值。

2014-10-07

C/C++内存对齐.pdf

介绍C/C++中内存对齐(字节对齐)的概念以及对齐规则。通过示例代码和图示帮助理解。

2014-09-23

Python3基础学习笔记.pdf

Python 3.4基础学习笔记,系统全面的介绍Python的基本语法和高级特性,适合于Python初学者快速入门。

2014-08-23

DArray类与String类源码

动态数组(Dynamic Array)是指动态分配的、可以根据需求动态增长占用内存的数组。为了实现一个动态数组类的封装,我们需要考虑几个问题:new/delete的使用、内存分配策略、类的四大函数(构造函数、拷贝构造函数、拷贝赋值运算符、析构函数)、运算符的重载。 DArray类与String类(面试常考)的源码及测试代码下载。

2014-07-29

2048-cocos2d-js

基于Cocos2d-html5实现的2048游戏源代码。 新浪云在线:http://2048m.sinaapp.com

2014-07-03

空空如也

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

TA关注的人

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