河西无名式

月影星痕

排序:
默认
按更新时间
按访问量

动态规划分析总结——如何设计和实现动态规划算法

进行算法设计的时候,时常有这样的体会:如果已经知道一道题目可以用动态规划求解,那么很容易找到相应的动态规划算法并实现;动态规划算法的难度不在于实现,而在于分析和设计—— 首先你得知道这道题目需要用动态规划来求解。本文,我们主要在分析动态规划在算法分析设计和实现中的应用,讲解动态规划的原理、设计和实...

2014-07-19 19:13:08

阅读数:9918

评论数:5

python中的排序问题——多属性排序

摘要:排序问题是一个经典的问题,在python中,因为有了库函数,排序操作就就更加简单,本文主要讲解如何运用python进行排序操作。 1.sort函数说明: sort函数是list类的一个方法,说明如下:   | sort(...) | L.sort(cmp=None, ke...

2013-12-17 22:14:24

阅读数:10376

评论数:1

perf 性能分析实例——使用perf优化cache利用率

摘要:本文主要讲解如何使用perf观察程序在缓存利用方面的瓶颈,进而优化程序,提高cache命中率。主要讲解提高缓存利用的几种常用方法。 1.程序局部性 一个编写良好的计算机程序通常具有程序的局部性,它更倾向与引用最近引用过的数据项,或者这个数据周围的数据——前者是时间局部性,后者是空间局...

2013-12-16 11:11:47

阅读数:5998

评论数:4

C语言变长数组 struct中char data[0]的用法

摘要:在实际的编程中,我们经常需要使用变长数组,但是C语言并不支持变长的数组。此时,我们可以使用结构体的方法实现C语言变长数组。 struct MyData  {     int nLen;     char data[0]; };                  ...

2013-12-01 22:27:39

阅读数:4290

评论数:1

python 字符编码与解码——unicode、str和中文:UnicodeDecodeError: 'ascii' codec can't decode

摘要:在进行python脚本的编写时,如果我们用python来处理网页数据或者进行与中文字符有关的处理工作,经常出现这样的出错信息:SyntaxError: Non-ASCII character '\xe6' in file ./filename.py on line 3, but no enc...

2013-11-21 16:28:17

阅读数:119821

评论数:8

linux 高端内存页框管理:永久内核映射、临时内核映射以及非连续内存分配

摘要:高端内存页框的内核映射分为三种情况:永久内核映射、临时内核映射和非连续内存映射。那么这三者有什么区别和联系呢?临时内核映射如何保证不会被阻塞呢?本文主要为你解答这些疑问,并详细探讨高端内存映射的前两种方式。 1.高端内存的区域划分 内核将高端内存划分为3部分:VMALLOC_ST...

2013-10-25 10:41:53

阅读数:4334

评论数:0

linux下的内核测试工具——perf使用简介

摘要:Perf是Linux kernel自带的系统性能优化工具。Perf的优势在于与Linux Kernel的紧密结合,它可以最先应用到加入Kernel的new feature。pef可以用于查看热点函数,查看cashe miss的比率,从而帮助开发者来优化程序性能。

2013-08-26 17:25:44

阅读数:16818

评论数:0

git pull报错:Auto Merge Failed; Fix Conflicts and Then Commit the Result.

1.出错场景: 协同开发时,我们从远程服务器上pull下代码的时候,出现以下提示信息: Auto Merge Failed; Fix Conflicts and Then Commit the Result. 2.原因分析: 利用git status,输出如下: root@hyk...

2013-08-20 11:32:17

阅读数:15967

评论数:2

数据包转发原理与iptables的使用方法简介与实例

对于连接到网络上的 Linux 系统来说,防火墙是必不可少的防御机制, 它只允许合法的网络流量进出系统,而禁止其它任何网络流量。为了确定网络流量是否合法, 防火墙依靠它所包含的由网络或系统管理员预定义的一组 规则。 这些规则告诉防火墙某个流量是否合法以及对于来自某个源、至某个目的地或具有某种协议类...

2013-07-26 09:06:50

阅读数:7979

评论数:1

内核符号表详解——如何在module中利用内核符号

前言:在内核开发中,有时候我们必须检查某些内核状态,或者我们想冲用某些内核功能,我们需要得到(read,write,exe)内核符号。本文主要为你介绍内核如何保存这些符号表,我们怎样应用这些内核符号表。本文仅仅是阅读内核源码的一个guide,通过阅读内核源码,我们将有更深入的理解。

2013-07-24 10:41:41

阅读数:8370

评论数:4

linux 内核头文件 linux kernel header

概述:在进行有关系统软件的安装的时候(编译一个新的驱动,或者安装一个系统级别的测试工具,例如systemtap),经常需要重新编译内核,相应的问题往往与内核头文件有关。那么,什么是内核头文件,为什么需要更新内核头文件?内核头文件作用是什么,如何更新?本文主要为你解答这些疑问。

2013-07-20 14:50:40

阅读数:10834

评论数:1

git中各个commit节点的查询 回溯 与 合并:git rebase与git reset

概述:在利用git进行管理的时候,除了对不同的分支进行merge以外,往往需要对同一个一个分支上的不同commit进行合并或者撤销;或者对不同分支上的多次提交进行合并,形成一个线性的提交历史,等等:这些都要用到git rebase,git reset和git log这三个命令。 1.commi...

2013-05-30 13:15:36

阅读数:13459

评论数:0

算法复杂度精讲——算法时间复杂度的数学原理:从O(n(log(n))说起

概述:在设计算法的时候,要考虑两个方面,一个是算法的正确性,另外一个就是算法的效率,也就是复杂度,通常情况下,我们优先考虑的是时间复杂度,这也是本文要讨论的内容。算法学习的时候,经常碰到这样的问题,为什么快速排序的时间复杂度是O(nlog(n))?为何插入排序的时间复杂度是O(n^2)?这些是我们...

2013-05-19 19:13:44

阅读数:6953

评论数:0

从汇编视角看函数调用

C语言函数如下int bar(int c, int d) { int e = c + d; return e; } int foo(int a, int b) { return bar(a, b); } int main(void) { foo(2, 5); ...

2017-08-03 18:49:20

阅读数:444

评论数:0

laravel 简介

Laravel是一款基于MVC设计模式的PHP框架,提供了一系列便捷的API接口,包括数据库、路由、表单验证等等,使PHP开发更为快速和优雅,一言以蔽:Laravel为WEB艺术家而生!1.安装先保证你已经安装好了PHP,接下来,你可以直接参考官网的安装教程进行安装。如果遇到网络问题,上述安装教程...

2016-08-21 18:36:56

阅读数:2232

评论数:0

crond 简介[转]

0.cron简介工具是一个以系统服务的形式存在。通过/etc/rc.d/init.d 或者 /etc/init.d目录下的启动脚本crond来启动。 也可能直接通过 service crond start 命令来启动。cron 会从如下这些地方读取安装的任务: 1>. /etc/anacr...

2016-08-18 10:52:24

阅读数:462

评论数:0

automake 使用指南

在构建大型的C/C++项目时,往往需要借助Makefile. 然而手动编写makefile是相当复杂的,这一点在程序需要跨平台的时候表现地更为明显。在此背景下,我们需要借助于一些自动化的工具来生成Makefile和configure。本文主要介绍autoconf, automake等自动化工具,...

2015-10-28 10:12:21

阅读数:1705

评论数:0

linux svn命令使用简介

1. svn st –helpstatus (stat, st): 显示工作副本中目录与文件的状态。 用法: status [PATH…] 未指定参数时,只显示本地修改的条目(没有网络访问)。 使用 -q 时,只显示本地修改条目的摘要信息。 使用 -u 时,增加工...

2015-09-17 15:06:51

阅读数:565

评论数:0

gcc指定头文件及动态链接库路径

在利用源代码进行软件编译的过程中,经常会出现以下错误: undefined reference to ‘crypt’ libdl.so: error adding symbols: DSO missing from command line openssl/rsa.h: no such file ...

2015-09-16 11:27:04

阅读数:1539

评论数:0

C++中的类型转化

C++中的类型转换种类繁多,很容易出错。本文主要总结,在何种情形该使用什么类型转化。1. char* >> int atoi char s[100]; int i=atoi(s); sscanf int sscanf(const char *str, const char *fo...

2015-09-16 09:49:45

阅读数:438

评论数:0

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