`
geekish
  • 浏览: 15041 次
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论
文章列表

最长回文字串算法

 
  最长回文子串(LPS)问题,wikipedia介绍了历史。   才接触的时候,也是从BF算法开始,结果遭遇O(n^3)的最坏情况。查找资料,两篇文章就解释的清清楚楚。这头一篇文章[1] 提到了①尝试LCS的错误解法②动态规划的解法③节省空间的O(n^2)方法。一一尝试过去,还是解法③省时省力。   第二篇文章[2] 介绍了神奇的Manacher算法,不是很直观,解法倒是聪明有趣,这里有一场讨论[3] 信息丰富。
查看原文 请追踪链接。   min宏定义探究 在GCC的文档中建议使用如下的min宏定义: 引用:#define min(X,Y)  \ (__extension__  \ ({  \    typeof(X) __x=(X), __y=(Y);   \    (__x<__y)?__x:__y;  \ }) \ )  本文讨论了这样作法的意义。     1、传统的min带来的副作用     2、GCC中的({statement list})的扩展     3、typeof(expression)     4、__extension__的含 ...

认识tickle语言

在学习正则表达式的时候,巧遇一种新的语言--tcl/tk。 这种编程语言的记法首先就比较独特,为什么中间要有个slash呢?原来tcl语言存在的意义,很大程度上是要依赖tk的[1]。 tcl出现的时间要比javascript(1995)早了七年,至今仍在使用行业领域中实际应用。   参考: [1]"Why you should not use Tcl "
#include <stdio.h> #include <stdlib.h> void getmemory(char *p) { p=(char *) malloc(100); strcpy(p,"hello world"); } int main( ) { char *str=NULL; getmemory(str); printf("%s/n",str); free(str); return 0; } 这是一段偶然看到的代码,然后看到一段评论是“程序崩溃,getmemory中的malloc不能返 ...

ECMAscript作用域链

工作中偶然的遇到了javascript解释器相关的工作,找了篇文章理解下相关概念。 http://dmitrysoshnikov.com/ecmascript/chapter-4-scope-chain/ http://www.denisdeng.com/?p=908 上面这篇文章写得简单直接,基本回答了我需要了解的“作用域链”的概念。 相比纯粹js代码开发者来说,对标准熟悉的人写得文章读起来更顺畅。 我注意到了文章中的三个概念,其实把它们的关系搞清楚,关于scope chain的问题也就没什么可说的了。 一个函数对象的作用域链依次由(1)它定义时的包括参数、内部变量的“内部作 ...

应用程序bugs

 
bug0:尝试在win7系统中使用air应用偶遇拦路虎。 安装AdobeAIR时出错:管理员可能不允许安装此软件
GCC在C语言中内嵌汇编-转载 http://hi.baidu.com/liu_bin0101/blog/item/433103007852b216738b658d.html 在内嵌汇编中,可以将C语言表达式指定为汇编指令的操作数,而且不用去管如何将C语言表达式的值读入哪个寄存器,以及如何将计算结果写 ...

关于ll/sc指令

ls/sc指令对主要的应用场合在多线程环境,有必要先来了解一下什么是ABA问题 。这个问题,简单的说来,是破坏了一个假设,即如果前后从同一位置读取的值相同,那么在这两次读之间这个位置的值就从未改变过。也许这个问题,改个名字叫做RWR问题来的更加直观。至于这个问题是否成其为一个问题,这里就不赘述了。     实际上,类似的ll/sc的CAS(compare-and-swap )操作就基于上面提到的假设。对基于ld/st的RISC体系结构来说,CAS的方法是不合理的,所以才需要ll/sc。CAS在软件事务内存(STM)中的应用 已经有人研究过,但是ld/st对STM的支持还没见到有人研究 ...
  linux内核SMP负载均衡浅析   实时进程的负载均衡   这里有句话,“‘每个CPU去竞争每一个run_queue’比‘每个CPU去竞争一个总的run_queue’略微好一些”。这两种策略之间的区别,显然是多服务台和单服务台的区别,在银行拍过队人的根据经验就能判断。   乍看之下,这种top-N的筛选对调度程序该是费时费力的,不过考虑常见的片上SMP系统的N都是个位数,貌似可以接受。   普通进程的负载均衡   update_cpu_load确实有趣,this_rq->cpu_load[i]的每一项都保存了历史上run_queue load值的加 ...
这一次读到的文章 遗传算法:内存中的进化 消除了对“遗传算法”的神秘和恐惧。 作者给出的例子很有意思。题目是“用100个三角形画一个firefox的logo”。评价solution的方法也简单,就是和手绘的logo尽可能的像。 遗传算法解决这类问题,按照“繁衍、变异、淘汰、终止”这个流程来组织代码。 理解文中的算法,有几个要点。个体由基因直接组成?看来,不如把个体的变异改用DNA的变异来描述。变异即是基因的替换。淘汰实现的关键是要有一个施加于个体的压力函数fitness function。文中的迭代终止条件很一般。 wolfel ...
Global site tag (gtag.js) - Google Analytics