• 每天进步一点点!

文章分类

推荐网站

常用手册

算法的力量(李开复)【转载】

算法是计算机科学领域最重要的基石之一,但却受到了国内一些程序员的冷落。许多学生看到一些公司在招聘时要求的编程语言五花八门,就产生了一种误解,认为学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。其实,大家被这些公司误导了。编程语言虽然该学,但是学习计算机算法和理论更重要,因为计算机语言和开发平台日新月异,但万变不离其宗的是那些算法和理论,例如数据结构、算法、编译原理、计算机体系结构、关系型数据库原理等等。在“开复学生网”上,有位同学生动地把这些基础课程比拟为“内功”,把新的语言、技术、标准比拟为“外功”。整天赶时髦的人最后只懂得招式,没有功力,是不可能成为高手的。

 

  • 算法与我

当我在1980年转入计算机科学系时,还没有多少人的专业方向是计算机科学。有许多其他系的人嘲笑我们说:“知道为什么只有你们系要加一个‘科学’,而没有‘物理科学系’或‘化学科学系’吗?因为人家是真的科学,不需要画蛇添足,而你们自己心虚,生怕不‘科学’,才这样欲盖弥彰。” 其实,这点他们彻底弄错了。真正学懂计算机的人(不只是“编程匠”)都对数学有相当的造诣,既能用科学家的严谨思维来求证,也能用工程师的务实手段来解决问题——而这种思维和手段的最佳演绎就是“算法”。

类别:数据结构 | 浏览(160) | 评论(0) | 阅读全文>>

linux查找文本命令 grep(三)【原创】

一些特殊的选项:

 

  • -e 选项

通常,第一个非选项的参数会指定要匹配的模式。你也可以提供多个模式,只要将它们放在引号里并以换行符分割他们。模式以减号开头时,grep会混淆,而将它视为选项。这就是-e选项排上用场的时候。他可以提供其参数为模式---即使它以减号开头。

例一:

 grep -e 'boy' -e '^abc' test_grep.txt 

#abc     def     hic     lmn     abc
#You     are     a       good    boy

使用-e可以以此匹配多个模式。

 

例二:

 cat test_grep2.txt

-v

-l

-F

-f

grep '-v' test_grep2.txt 此时光标停在第二行,没有找到匹配行。这是因为grep将“-v”当做了选项,将test_grep2.txt当做了要匹配的模式,等在要求匹配的文件,因此在等待。此时用-e可以解决了

grep -e '-v' test_grep2.txt 
# -v

 

     

  • -f 选项

可以将所有匹配模式写到一个文件中,用-f选项后面跟上此文件,这样可以一次匹配多个模式。

cat pat_file

good

boy

类别:Linux | 浏览(110) | 评论(0) | 阅读全文>>

linux查找文本命令 grep(二)【转载】

linux查找文本命令 grep

 

  • 实例

 

cat test_grep.txt 

 

abc     def     hic     lmn     abc

123     456     1.23    4.5     321

ABC     Def     hIc     lmN     ABC

ABC     Def     hIc     lmN     dsf

A BC     Def     hIc     lmN     ABC

You     are     a       good    boy

you     are     a       good    girl

you     are     not     a       good girl

That's  a       very    lovely  dog

 

例一:

grep -c 'good' test_grep.txt 
#3

cat test_grep.txt | grep  'good' | wc -l
#3

 

这两种方法都可以统计含有‘good’的行数,但是第一种方法明显更简练。

 

例二:

 grep -i 'abc' test_grep.txt

#abc     def     hic     lmn     abc
#ABC     Def     hIc     lmN     ABC
#ABC     Def     hIc     lmN     dsf
#A BC     Def     hIc     lmN     ABC

 

grep使用的正则表达式没有像其他语言那样的修饰符,如i,s,m。对于忽略大小写的匹配,可以用选项-i实现。

类别:Linux | 浏览(110) | 评论(0) | 阅读全文>>

linux查找文本命令 grep(一)【原创】

  • grep的用途:

显示匹配一个或多个模式的文本行。grep命令在一个或多个文件中查找某个字符模式。如果这个模式中包含空格,就必须用引号把它括起来。grep命令中,模式可以是一个被引号引起了的字符串,也可以是单个词,位于文件后的所有单词都会被认为是文件名。grep将输出发送到屏幕,他不会对输入文件做任何修改和变化。 时常会作为管道的第一步,以便对匹配的数据作进一步处理。

 

  • grep家族

grep

最早的文本匹配程序,所使用POSIX定义的基本正则表达式(Basic Regular Expression, BRE)

egrep

扩展式grep这个程序使用的是扩展的正则表达式(Extended Regular Expression, ERE)——这是一套功能更强大的正则表达式,

使用它的代价就是会消耗更多的运行资源。在早期出现的PDP-11的机器上,这点事关重大,不过以现在的系统而言,在性能影响上几乎没有太大的差别。

fgrep

快速grep(fast grep)。这个版本匹配固定字符串而非正则表达式,它使用游湖的算法,能更有效的匹配固定字符串。也就是说

,grep和egrep智能匹配单个正则表达式,儿fgrep使用不同的算法,却能匹配过个字符串,有效地测试每个输入行里,是否有匹配的查找字符串。

类别:Linux | 浏览(135) | 评论(0) | 阅读全文>>

PHP中引用传值详解【转载】

    所谓值传递,就是说仅将对象的值传递给目标对象,就相当于copy;系统将为目标对象重新开辟一个完全相同的内存空间。 

    所谓引用,就是说将对象在内存中的地址传递给目标对象,就相当于使目标对象和原始对象对应同一个内存存储空间。此时,如果对目标对象进行修改,内存中的数据也会改变。

php的引用(就是在变量或者函数 、对象等前面加上&符号)

在PHP 中引用的意思是:不同的名字访问同一个变量内容.

与C语言中的指针是有差别的.C语言中的指针里面存储的是变量的内容在内存中存放的地址

 

变量的引用

PHP 的引用允许你用两个变量来指向同一个内容

$a="ABC";
$b =&$a;
echo $a;//这里输出:ABC
echo $b;//这里输出:ABC
$b="EFG";
echo $a;//这里$a的值变为EFG 所以输出EFG
echo $b;//这里输出EFG

函数的传址调用

传址调用我就不多说了 下面直接给出代码  

function test(&$a)
{
    $a=$a+100;
}
$b=1;
echo $b;//输出1
test($b);   //这里$b传递给函数的其实是$b的变量内容所处的内存地址,
                 //通过在函数里改变$a的值 就可以改变$b的值了
echo "\n";
echo $b;//输出101

要注意的是,在这里test(1);的话就会出错,原因自己去想  

类别:PHP | 浏览(88) | 评论(1) | 阅读全文>>