算法学习(4)----汉诺塔递归算法和非递归算法
摘要:学习《算法设计与分析基础》,习题2.4 第5题要求为汉诺塔游戏设计一个非递归的算法。 思,不得其解。看书后答案提示: 好吧,话都说得这么直接了,遂百度之,得到一个感觉很好的答案,略做修改,摘录于下: 原文地址:http://blog.sina.com.cn/s/blog_48e3f9cd010004
阅读全文
posted @
2016-07-30 12:19
HorseShoe2016
阅读(9249)
推荐(0) 编辑
算法学习(3)----求数组中大小最接近的两个元素的差
摘要:《算法设计与分析基础》习题1.2 第 9 题如下: 原算法遍历每一个元素对,时间复杂度为 O(n²)。这其中有一半的元素对是重复比较的。且在已知 a < b < c 而比较过了 a、b 的差的情况下,没必要再比较 a 和 c 的差。 改进该算法的思想时,先选取前两个元素的差作为 dmin ,并记录下
阅读全文
posted @
2016-07-29 17:07
HorseShoe2016
阅读(4813)
推荐(1) 编辑
算法学习(2)----丢番图方程
摘要:之前一篇随笔"算法学习(1) 扩展欧几里得算法"记录了对 朴素欧几里得算法 和 扩展欧几里得算法 的学习和认识。学习所用书籍为 [美]Anany Levitin 所著 《算法设计与分析基础》。 书后习题1.1 第10题 b 题如下: 看完题目开始思考,该题与扩展欧几里得算法有何联系?如果 c 为 a
阅读全文
posted @
2016-07-29 11:31
HorseShoe2016
阅读(1840)
推荐(0) 编辑
算法学习(1)----扩展欧几里得算法
摘要:摘自百度百科 欧几里德算法 摘自百度百科 欧几里德算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理: gcd函数就是用来求(a,b)的最大公约数的。 gcd函数的基本性质: gcd(a,b)=gcd(b,a)=gcd(-a,b)=gcd(|a|,|b|
阅读全文
posted @
2016-07-28 21:53
HorseShoe2016
阅读(964)
推荐(0) 编辑
MySQL数据库(12)----ALL、ANY、SOME子查询
摘要:运算符 ALL 和 ANY 常与某个关系比较运算符结合在一起使用,以便测试列子查询的结果。它们会测试比较值与子查询返回的全部或部分值是否匹配。例如,当比较值小于或等于子查询返回的每个值时,<= ALL 的结果为真;当比较值小于或等于子查询返回的任意值时,<= ANY 的结果为真。SOME 是 ANY
阅读全文
posted @
2016-07-28 10:44
HorseShoe2016
阅读(1038)
推荐(0) 编辑
MySQL数据库(11)----使用子查询实现多表查询
摘要:子查询指的是用括号括起来,并嵌入另一条语句里的那条 SELECT 语句。下面有一个示例,它实现的是找出与考试类别('T')相对应的所有考试事件行的 ID,然后利用它们来查找那些考试的成绩: 1.1 带关系比较运算符的子查询 运算符 =、<>、>、>=、< 和 <= 可用来对值之间的关系进行比较。当与
阅读全文
posted @
2016-07-28 10:33
HorseShoe2016
阅读(1549)
推荐(0) 编辑
MySQL数据库(10)----IN 和 NOT IN 子查询
摘要:当子查询要返回多个行来与外层查询进行比较运算时,可以使用运算符 IN 和 NOT IN。它们会测试某个给定的比较值是否存在于某一组值里。如果外层查询里的行与子查询返回的某一个行相匹配,那么 IN 的结果为真。如果外层查询里的行与子查询返回的所有行都不匹配,那么 NOT IN 的结果为真。 1. 下面
阅读全文
posted @
2016-07-28 10:27
HorseShoe2016
阅读(3394)
推荐(0) 编辑
MySQL数据库(9)----使用连接实现多表检索
摘要:有许多演示如何使用MySQL所支持的连接操作的示例,都用到了下列两个表 t1 和 t2: 由于这两个表都很小,因此我们可以很清楚地看到每种类型的连接操作所执行的效果。 1.内连接 1.1 如果SELECT 语句的 FROM 子句里列出了过个表的名字,并且这些名字是由 INNER JOIN 隔开的,那
阅读全文
posted @
2016-07-27 22:39
HorseShoe2016
阅读(359)
推荐(0) 编辑
MySQL数据库(9)----从命令行获取元数据
摘要:1. mysqlshow 命令提供的信息与某些 SHOW 语句很相似,因此可以从命令行提示符获取数据库和表的信息。 (i)列出服务器所管理的数据库: (ii)列出数据库里的表: (iii) 显示表里的列信息: (iv) 显示表里的索引信息: (v) 显示数据库里所有表的描述性信息: 2. 客户端程序
阅读全文
posted @
2016-07-27 21:01
HorseShoe2016
阅读(344)
推荐(0) 编辑
MySQL数据库(8)----表的创建、删除、索引和更改
摘要:MySQL允许使用 CREATE TABLE 语句和 DROP TABLE 语句来创建、删除表,使用 ALTER TABLE 语句更改其结构。CREATE INDEX 语句和 DROP INDEX 语句则可以用来为已有表增加或删除索引。下面将详细解释这些语句。但先来了解一下MySQL支持的存储引擎的
阅读全文
posted @
2016-07-27 17:01
HorseShoe2016
阅读(1207)
推荐(0) 编辑
MySQL数据库(7)----数据库的选择、创建、删除和更改
摘要:1.选择数据库 使用 USE 语句可以选择数据库,并把它指定为MySQL服务器连接的默认(当前)数据库: 要想选择数据库,用户必须要具备相应的访问权限;否则,会出现错误提示。 选择了一个数据库,并不意味着它就是此次会话期间的默认数据库。用户可以根据需要调用 USE 语句,从而实现在两个数据库之间的任
阅读全文
posted @
2016-07-26 22:10
HorseShoe2016
阅读(612)
推荐(0) 编辑
MySQL数据库(6)----配置文件 my.cnf 的使用
摘要:1. 使用源码安装好MySQL后,其配置文件一般位于 /usr/local/my.cnf,可以使用如下命令查看查看配置文件的搜索顺序: 可以看到,红色标记的那一段话显示搜索 my.cnf 的顺序为 /etc/mysql/my.cnf、/etc/my.cnf、/usr/local/mysql/my.c
阅读全文
posted @
2016-07-26 20:39
HorseShoe2016
阅读(1945)
推荐(0) 编辑
Google APAC----Africa 2010, Qualification Round(Problem C. T9 Spelling)----Perl 解法
摘要:原题地址链接:https://code.google.com/codejam/contest/351101/dashboard#s=p2 问题描述: Problem The Latin alphabet contains 26 characters and telephones only have
阅读全文
posted @
2016-07-26 12:05
HorseShoe2016
阅读(338)
推荐(0) 编辑
Google APAC----Africa 2010, Qualification Round(Problem B. Reverse Words)----Perl 解法
摘要:原题地址链接:https://code.google.com/codejam/contest/351101/dashboard#s=p1 问题描述: Sample: Perl算法: 上传原题地址链接网站,结果正确
阅读全文
posted @
2016-07-26 11:47
HorseShoe2016
阅读(186)
推荐(0) 编辑
Google APAC----Africa 2010, Qualification Round(Problem A. Store Credit)----Perl 解法
摘要:原题地址链接:https://code.google.com/codejam/contest/351101/dashboard#s=p0 问题描述: Sample: Perl 语言算法: 将输出文件上传上面原题链接的网站测试,结果正确。
阅读全文
posted @
2016-07-26 11:42
HorseShoe2016
阅读(252)
推荐(0) 编辑
Perl学习笔记(3)----遍历哈希表的一个容易疏忽的地方
摘要:今天做 Google的 Code Jam 上的一道题目:https://code.google.com/codejam/contest/351101/dashboard#s=p2,用Perl语言解答的。遇到一个关于hash遍历的问题,思考了好一会儿才发现问题所在,为了简化叙述,写了一个简单的遍历哈希
阅读全文
posted @
2016-07-25 21:21
HorseShoe2016
阅读(2911)
推荐(0) 编辑
Perl学习笔记(1)----入门
摘要:在UNIX/Linux 系统上,打开命令终端,输入 'rpm -q perl' 查看系统是否安装了 perl 在自己的CentOS7 系统上,默认自带了 perl 软件: 可以看到系统默认已经安装了 perl5 软件。 查看安装位置: 1. 第一个 Perl 程序 Perl 的语句用分号分隔。注释以
阅读全文
posted @
2016-07-24 18:57
HorseShoe2016
阅读(241)
推荐(0) 编辑
Perl学习笔记(2)----正则表达式数字匹配的一个疏忽
摘要:《Perl语言入门》第15章习题第2题如下: 自己写的程序如下: 结果运行的时候,发现输入 3 、5 、7 ,没有任何输出,而输入 15、 35 、21 之类的数字,却可以有 “Fizz Bin”、 “Bin Sausage” 之类的输出,怎么回事呢? 仔细推敲,原来问题出在第5行的正则表达式的代码
阅读全文
posted @
2016-07-24 18:02
HorseShoe2016
阅读(1249)
推荐(0) 编辑
UNIX/Linux系统管理技术手册(3)----bash 数组和算术运算
摘要:复杂的数据结构和计算不是 bash 的特长。但它的确至少提供了数组和算术运算。 1.算术运算 所有的 bash 变量的值都是字符串,所以 bash 在赋值的时候并不区分数字 1 和 字符串 "1" 。不同之处在于如何使用变量。下面几行代码展示出了其中的差异: 运行结果: 注意给$c 赋值的语句,其中
阅读全文
posted @
2016-07-19 17:28
HorseShoe2016
阅读(281)
推荐(0) 编辑
UNIX/Linux系统管理技术手册(2)----bash脚本编程
摘要:1. 一个简单的例子: 执行: 2. 命令行参数和函数 给一个脚本的命令行参数可以成为变量,这些变量的名字是数字。$1 是第一个命令行的参数,$2 是第二个,以此类推。$0 是调用该脚本所采用的名字,所以它的取值并不固定。 变量$# 是提供给脚本的命令行参数的个数,变量$*里保存有全部的参数。这两个
阅读全文
posted @
2016-07-19 15:19
HorseShoe2016
阅读(272)
推荐(0) 编辑
UNIX/Linux系统管理技术手册(1)----脚本和shell
摘要:1. 管道和重定向 (i) 要让第二条命令只有在第一条命令成功完成之后才执行,可以用一个 && 符号把两条命令隔开。例如: 该命令表示先 ls /usr/local/ 目录下的 dir-name 文件夹,如果存在这个文件夹,就执行 cd /usr/local/dir-name 命令进入这个文件夹;如
阅读全文
posted @
2016-07-19 11:46
HorseShoe2016
阅读(439)
推荐(0) 编辑
MySQL数据库(5)----删除或更新已有行
摘要:有时候,会需要删除某些行,或者修改其内容。这是候便需要用到DELETE语句和UPDATE语句。 1. DELETE 语句的基本格式如下所示: 其中,WHERE子句是可选的,它用于指定需要删除掉哪些行。如果没有WHERE 子句,那么将删除表里面的所有行。这意味着,越简单的DELETE语句越危险,例如下
阅读全文
posted @
2016-07-17 22:58
HorseShoe2016
阅读(15439)
推荐(0) 编辑
MySQL数据库(4)----生成统计信息
摘要:MySQL最有用的一项功能就是,能够对大量原始数据进行归纳统计。 1.在一组值里把各个唯一的值找出来,这是一项典型的统计工作,可以使用DISTINCT 关键字清楚查询结果里重复出现的行。例如,下面的查询可以查看 student 表里所有的性别: 2. 另一种统计形式是计数,需要使用COUNT()函数
阅读全文
posted @
2016-07-17 21:19
HorseShoe2016
阅读(3338)
推荐(0) 编辑
MySQL数据库(3)----设置和使用自定义变量
摘要:MySQL支持定义自己的变量。这些变量可以被设置为查询结果,这使我们可以方便地把一些值存储起来供今后查询使用。 自定义变量的语法为"@变量名" 。在SELECT 语句里,赋值语法是形如 "@变量名:=值" 的表达式。因此,上面的第一个查询主要负责把 student_id = 3 的学生的名字查找出来
阅读全文
posted @
2016-07-17 19:31
HorseShoe2016
阅读(1277)
推荐(0) 编辑
MySQL数据库(2)----检索信息
摘要:SELECT 语句的简化语法如下: 1.在写SELECT语句的时候,需要先指定检索的内容,然后再加上一些可选的子句。 (i) FROM 子句通常是不可少的,但当不需要给出表名时,可以省略它。例如,下面这条查询语句只显示一些表达式的值。这些值计算并未涉及任何表,因此这里不需要FROM子句: (ii)
阅读全文
posted @
2016-07-17 17:48
HorseShoe2016
阅读(254)
推荐(0) 编辑
MySQL数据库(1)----入门级操作
摘要:1.在服务器主机上以 root 用户登陆,创建位于其他客户端的新用户: 2.创建数据库 3.设置当前默认数据库 (i) 创建数据库后,当前默认数据库并没有指定,所以进行如下操作会没有结果: 要想把 sampdb 设置为默认的数据库,需要执行 use 语句: (ii)另一种选择默认数据库的方法是,调用
阅读全文
posted @
2016-07-17 16:02
HorseShoe2016
阅读(291)
推荐(0) 编辑
Apache服务器运维笔记(6)----目录 文件 网络容器的安全问题
摘要:<Directory>、<Files>、<Location> 这三个容器的作用都很相似,都是以容器的形式来封装一组指令对访问进行控制,只是它们的区别在于作用于目录、文件、网络,因此经常会有人将它们混用而导致一些安全问题的出现,例如,使用<Location>容器来限制文件系统中的目录或是文件: 在上面
阅读全文
posted @
2016-07-16 19:22
HorseShoe2016
阅读(204)
推荐(0) 编辑
Apache服务器运维笔记(5)----容器的处理顺序
摘要:容器在配置文件中是可以多次使用的,同时也可以嵌套使用,但是 Apache 在处理容器时却是有一定顺序的,因此在编写容器配置时需要按照一定的顺序来进行,否则Apache处理的结果很可能不是管理员想要的。 在Apache中容器的处理顺序如下: Apache会优先处理<Directory>容器(但是不会处
阅读全文
posted @
2016-07-16 19:10
HorseShoe2016
阅读(385)
推荐(0) 编辑
CentOS7 下安装 SublimeText3
摘要:原文地址:http://www.sundabao.com/centos-%E5%AE%89%E8%A3%85sublime-text-3/ Centos 安装Sublime text 3 Centos大多数情况下是用来做服务器的,但是由于各种原因我现在要用Centos做开发机,所以当然要安装开发神奇
阅读全文
posted @
2016-07-16 18:53
HorseShoe2016
阅读(2023)
推荐(0) 编辑
Apache服务器运维笔记(4)----服务器扩展部分
摘要:在Apache的默认配置文件夹中有一个 extra 目录,这个目录是用来存放 Apache 其他模块的配置文件的。这些文件是 Apache 针对常用的模块而设置并提供的,它们都是通过 Include 指令来加载的。如果需要使用则只需要在 httpd.conf 文件中相应的加载行前删除 "#" ,将其
阅读全文
posted @
2016-07-16 16:40
HorseShoe2016
阅读(861)
推荐(0) 编辑
Apache服务器运维笔记(3)----容器部分
摘要:1.<IfModule>容器 <IfModule>容器作用于模块,它会首先判断模块是否载入,然后再决定是否进行处理,也就是说只有当判断结果为真时才会执行容器内的指令,相反如果为假,则会全部忽略。可以使用<IfModule 模块名> 或 <IfModule !模块名> 来判断模块是否载入。例如: 在第
阅读全文
posted @
2016-07-16 16:14
HorseShoe2016
阅读(1629)
推荐(0) 编辑
KMP算法的一个简单实现
摘要:今天学习KMP算法,参考网上内容,实现算法,摘录网页内容并记录自己的实现如下: 原文出处: http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html 字符串匹配是计算机的基本任务之
阅读全文
posted @
2016-07-14 11:21
HorseShoe2016
阅读(266)
推荐(0) 编辑
CentOS 7运维管理笔记(12)----GUI配置工具Webmin的安装
摘要:早期的Linux系统管理员或是Web管理员在修改服务器配置时使用最多的就是vi编辑器,但是现在越来越多的基于GUI界面的配置工具出现了,毕竟人们还是喜欢以直接的可视化的方式来修改服务器的配置,而不是再像以前一样使用vi、sed等工具来进行修改。 本篇随笔记录自己安装Webmin管理工具的过程。 1.
阅读全文
posted @
2016-07-09 12:04
HorseShoe2016
阅读(2387)
推荐(0) 编辑
Apache服务器运维笔记(2)----使用apxs来进行编译安装 mod_txt 模块
摘要:mod_txt是一个非常有趣的模块,它实现了文本的输出过滤器,它可以在指定类型的网页上,将你指定的txt文件显示在网页的头部和尾部。 在它的主页 http://apache.webthing.com/mod_txt 上可以得到它。 整个模块就是一个不到180行的文件,非常简单。使用wget可将它取回
阅读全文
posted @
2016-07-08 20:50
HorseShoe2016
阅读(601)
推荐(0) 编辑
Apache服务器运维笔记(2)----使用<IfDefine>容器实现不同的配置
摘要:还有一种方法用来实现不同配置的Apache服务器启动,就是在一个配置文件中使用<IfDefine name> ... </IfDefine> 容器来定义,在<IfDefine name>中 name 是一个变量名称,只有当name 为真时,才会执行<IfDefine name>到</IfDefine
阅读全文
posted @
2016-07-08 17:15
HorseShoe2016
阅读(956)
推荐(0) 编辑
Apache服务器运维笔记(1)----运行多个Apache服务器
摘要:所有的Apache管理员都会遇到一个问题,就是在一台物理系统上运行多个版本的Apache服务器,或是运行多个同一版本的Apache服务器的副本,对于前者,在编译时为不同版本的Apache指定不同的安装目录即可。例如,在下面的例子中指定安装目录为 /usr/local/apache2 和 /usr/l
阅读全文
posted @
2016-07-08 17:05
HorseShoe2016
阅读(619)
推荐(0) 编辑
CentOS 7运维管理笔记(12)----PHP页面失去焦点后变成空白的解决方法
摘要:昨天搭建好了LAMP服务器,可以正常看到PHP页面了。后来发现每当把鼠标从浏览器中移开而点击其他地方时,PHP页面就变成一片空白。即PHP页面失去焦点后就变空白,不知为何。 今天网上搜索解决方案,终于在这个页面找到答案: http://www.php230.com/1410786841.html 摘
阅读全文
posted @
2016-07-07 10:22
HorseShoe2016
阅读(490)
推荐(0) 编辑
CentOS 7运维管理笔记(11)----PHP安装与配置
摘要:PHP的安装同样需要经过环境检查、编译和安装3个步骤。 1.首先用百度搜索 “PHP:Downloads”, 点击第一个网页: 选择5.5.37版本,选择 .tar.gz 格式的文件: 来到镜像列表网站:http://php.net/get/php-5.6.23.tar.gz/from/a/mirr
阅读全文
posted @
2016-07-06 20:45
HorseShoe2016
阅读(2833)
推荐(1) 编辑
CentOS 7运维管理笔记(9)----Apache 安全控制与认证
摘要:Apache 提供了多种安全控制手段,包括设置Web访问控制、用户登陆密码认证及 .htaccess 文件等。通过这些技术手段,可以进一步提升Apache服务器的安全级别,减少服务器受攻击或数据被窃取的风险。 1.Apache 安全控制 要进行Apache 的访问控制首先要了解Apache的虚拟目录
阅读全文
posted @
2016-07-05 11:39
HorseShoe2016
阅读(1101)
推荐(0) 编辑
CentOS 7运维管理笔记(11)----解决配置静态IP还是会出现动态IP地址的问题
摘要:网上搜集CentOS7 配置静态IP的方法,基本上都是说在 /etc/sysconfig/network-scripts/ifcfg-eth0文件中做如下配置 其中,BOOTPROTO只有 none,bootp,dhcp三个选项,没有static选项,选择none即可以进行静态ip配置。 配置好后,
阅读全文
posted @
2016-07-04 20:47
HorseShoe2016
阅读(5297)
推荐(0) 编辑
CentOS 7运维管理笔记(10)----MySQL源码安装
摘要:MySQL可以支持多种平台,如Windows,UNIX,FreeBSD或其他Linux系统。本篇随笔记录在CentOS 7 上使用源码安装MySQL的过程。 1.下载源码 选择使用北理工的镜像文件: 在CentOS 7 中输入如下命令: 2.解压mysql源码压缩文件,并更新软件源 3.安装编译所需
阅读全文
posted @
2016-07-04 20:13
HorseShoe2016
阅读(459)
推荐(0) 编辑
CentOS 7运维管理笔记(8)----Apache基于域名的虚拟主机配置
摘要:使用基于域名的虚拟主机配置是比较流行的方式,可以在同一个IP上配置多个域名并且都通过80端口访问。 (1) 在网卡 eth0的第五个接口上配置 192.168.1.215 这个地址: (2) 配置/etc/hosts文件,192.168.1.215 对应的域名如下: 做ping测试,保证ip是导通的
阅读全文
posted @
2016-07-02 20:12
HorseShoe2016
阅读(1458)
推荐(0) 编辑
CentOS 7运维管理笔记(7)----Apache 基于端口的虚拟主机配置
摘要:如果一台服务器只有一个IP或需要通过不同的端口访问不同的虚拟主机,可以使用基于端口的虚拟主机配置。 (1) 在虚拟机的CentOS7服务器上配置 eth0:4 为192.168.1.214: (2) 配置 /etc/hosts文件以方便测试: 进行ping测试,看ip地址有没有导通: (3) 建立虚
阅读全文
posted @
2016-07-02 19:36
HorseShoe2016
阅读(3589)
推荐(0) 编辑
CentOS 7运维管理笔记(6)----Apache 基于 IP 的虚拟主机配置
摘要:Apache 配置虚拟主机支持3种方式:基于IP的虚拟主机配置,基于端口的虚拟主机配置,基于域名的虚拟主机配置。本篇随笔记录自己基于IP的虚拟主机配置。 如果同一台服务器有多个IP,可以使用基于IP的虚拟主机配置,将不同的服务绑定在不同的IP上。 (1)绑定IP: 在虚拟机中搭建的CentOS 7
阅读全文
posted @
2016-07-02 17:51
HorseShoe2016
阅读(1572)
推荐(0) 编辑