- 博客(30)
- 收藏
- 关注
原创 快速排序 优化 详细分析
看了编程珠玑Programming Perls第11章关于快速排序的讨论,发现自己长年用库函数,已经忘了快排怎么写。于是整理下思路和资料,把至今所了解的快排的方方面面记录与此。 纲要算法描述时间复杂度分析具体实现细节划分选取枢纽元固定位置随机选取三数取中分割单向扫描双向扫描Hoare的双向扫描改进的双向扫描双向扫描的其他问题分治尾递归参考文献一、算法描述(Algorithm Description)快速排序由C.A.R.Hoare于1962年提出,算法相当简单精炼,基本策略是随机分治。首先选取一个枢纽元
2010-10-31 20:32:00 8468 5
原创 stooge排序 效率 说明
<br />今天研究了一下算法导论,很有意思的一本书,至少可以很好的训练人的思维。呵呵。不过被一个课后习题难到了:stooge算法。试着举例来证明一下,不过没有成功。不过找到了一个使用循环不变性(有的人叫循环不变式,不过感觉这种叫法好一些。)证明的。答案如下:<br />STOOGE-SORT(A, i, j)<br />1 if A[i] > A[j]<br />2 then exchange A[i] « A[j]<br />3 if i+1 ≥ j<br />4
2010-10-31 19:32:00 2071 1
原创 数据库 schema 与 catalog 简介
<br />按照SQL标准的解释,在SQL环境下Catalog和Schema都属于抽象概念,可以把它们理解为一个容器或者数据库对象命名空间中的一个层次,主要用来解决命名冲突问题。从概念上说,一个数据库系统包含多个Catalog,每个Catalog又包含多个Schema,而每个Schema又包含多个数据库对象(表、视图、字段等),反过来讲一个数据库对象必然属于一个Schema,而该Schema又必然属于一个Catalog,这样我们就可以得到该数据库对象的完全限定名称从而解决命名冲突的问题了;例
2010-10-29 18:21:00 3778
原创 PHP extract() 函数
定义和用法<br />PHP extract() 函数从数组中把变量导入到当前的符号表中。<br />对于数组中的每个元素,键名用于变量名,键值用于变量值。<br />第二个参数 type 用于指定当某个变量已经存在,而数组中又有同名元素时,extract() 函数如何对待这样的冲突。<br />本函数返回成功设置的变量数目。语法extract(array,extract_rules,prefix)参数描述array必需。规定要使用的输入。extract_rules<br />可选。extract() 函数
2010-10-29 16:18:00 452
原创 pack() PHP 函数
定义和用法<br />pack() 函数把数据装入一个二进制字符串。语法pack(format,args+)参数描述format必需。规定在包装数据时所使用的格式。args+可选。规定被包装的一个或多个参数。format 参数的可能值:a - NUL-padded stringA - SPACE-padded stringh - Hex string, low nibble firstH - Hex string, high nibble firstc - signed charC - unsigned c
2010-10-28 17:43:00 741
原创 base_convert() PHP 函数
定义和用法<br />base_convert() 函数在任意进制之间转换数字。语法base_convert(number,frombase,tobase)参数描述number必需。原始值。frombase必需。数字原来的进制。tobase必需。要转换的进制。说明<br />返回一个字符串,包含 number 以 tobase 进制的表示。number 本身的进制由 frombase 指定。frombase 和 tobase 都只能在 2 和 36 之间(包括 2 和 36)。高于十
2010-10-28 17:42:00 1304
原创 php float 学习
<br />浮点型<br />浮点数(也叫浮点数,双精度数或实数)可以用以下任一语法定义:<br /><?php<br />$a = 1.234; <br />$b = 1.2e3; <br />$c = 7E-10;<br />?><br />浮点数的形式表示: <br />LNUM [0-9]+<br />DNUM ([0-9]*[/.]{LNUM}) | ({LNUM}[/.][0-9]*)<br />EXPONENT_DNUM [+-]?(({LN
2010-10-28 16:00:00 1837
原创 php int 探究
<br />php中,int为整形<br />一个 integer 是集合 Z = {..., -2, -1, 0, 1, 2, ...} 中的一个数。 <br /> <br />整型值可以使用十进制,十六进制或八进制表示,前面可以加上可选的符号(- 或者 +)。 <br />八进制表示数字前必须加上 0(零),十六进制表示数字前必须加上 0x。 <br /> <br />Example #1 整数文字表达<?php<br />$a = 1234; // 十进制数<br />$a
2010-10-28 14:51:00 2968
原创 ubuntu 执行 sudo su 输入密码无效
<br />解决办法:<br />1 sudo passwd root 会要求输入当前用户的sudo密码,之后重置root的密码即可。<br />之后 su 输入之前重置的密码便ok。
2010-10-28 09:26:00 3464
原创 Ubuntu 10.04 配置Apache+PHP+MySQL
<br />1.安装apache2.0<br />sudo apt-get install apache2<br />安装过程就不多说了<br />安装后在浏览器中打开:<br />http://localhost/<br />或者http://127.0.0.1<br />如果出现It works!那证明OK了<br /> <br />2.安装PHP<br />依次在终端打开:<br />sudo apt-get install php5 //安装PHP5<br />sudo apt-get instal
2010-10-27 22:23:00 519
原创 tempnam 使用 建立一个具有唯一文件名的文件
<br />string tempnam ( string $dir , string $prefix )<br />在指定目录中建立一个具有唯一文件名的文件。如果该目录不存在,tempnam() 会在系统临时目录中生成一个文件,并返回其文件名。 <br /><br />在 PHP 4.0.6 之前,tempnam() 函数的行为取决于系统。在 Windows 下 TMP 环境变量会越过 dir 参数,在 Linux 下 TMPDIR 环境变量优先,而在 SVR4 下总是使用 dir 参数,如果其指
2010-10-26 10:40:00 1750
原创 preg_match_all 函数 使用
preg_match_all — 进行全局正则表达式匹配说明intpreg_match_all ( string$pattern , string$subject , array$matches [, int$flags ] )在 subject 中搜索所有与 pattern 给出的正则表达式匹配的内容并将结果以 flags 指定的顺序放到 matches 中。 搜索到第一个匹配项之后,接下来的搜索从上一个匹配项末尾开始
2010-10-22 16:24:00 1219
原创 php 字符编码转换
<br />MySQL使用4.1以上版本,管他是什么字符集,一律使用默认。不用去设置MySQL。<br /> 然后举个使用GB2312和UTF-8的例子。<br /> 好,你只要保证你的写着INSERT SQL语句的PHP文件编码为GB2312,那么恭喜你,你使用写着SELECTSQL语句的GB2312编码的PHP文件读取出来的数据也是GB2312的。<br /> 同理,只要你插入数据库的PHP文件是UTF-8编码,那么你录入的就是UTF-8的,读取出来同样使用编码为UTF-8的读取。
2010-10-21 16:22:00 2475
原创 parse_url解析 URL,返回其组成部分
<br />parse_url<br />(PHP 4, PHP 5)<br />parse_url — 解析 URL,返回其组成部分<br />说明<br />array parse_url ( string $url )<br />本函数解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分。 <br />本函数不是用来验证给定 URL 的合法性的,只是将其分解为下面列出的部分。不完整的 URL 也被接受,parse_url() 会尝试尽量正确地将其解析。 <br />参数<br /
2010-10-09 12:53:00 1271
原创 MySQL的btree索引和hash索引的区别
<br /> Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。 <br />可 能很多人又有疑问了,既然 Hash 索引的效率要比 B-Tree 高很多,为什么大家不都用 Hash 索引而还要使用 B-Tree 索引呢?任何事物都是有两面性的,Hash 索引也一样,虽然 Hash 索引效率高,但是 Hash 索引本身由于其特殊性也
2010-10-09 10:26:00 650
原创 共享锁和排他锁的异同
<br />共享锁(S锁):<br />如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。获准共享锁的事务只能读数据,不能修改数据。 <br />排他锁(X锁):<br />如果事务T对数据A加上排他锁后,则其他事务不能再对A加任任何类型的封锁。获准排他锁的事务既能读数据,又能修改数据。 <br />简要说明为什么会发生死锁?解决死锁的主要方法是什么? <br />若干事务相互等待释放封锁,就陷入无限期等待状态,系统就进入死锁 <br />解决死锁的方法应从预防和解除的两个方面着手
2010-10-08 16:26:00 3202
原创 php fsockopen 伪造 post和get方法
<br />fsockopen 伪造 post和get方法哦,如果你正在找 伪造 post和get方法的php处理代码这款不错哦。<br /><?php<br />//fsocket模拟post提交<br />$purl = "http://localhost/netphp/test2.php?uu=rrrrrrrrrrrr";<br />print_r(parse_url($url));<br />sock_post($purl,"uu=55555555555555555");<br />//fsocke
2010-10-04 18:32:00 4567
原创 使用Curl、socket、file_get_contents三种方法POST提交数据
<br /># <?php <br /># /** <br /># * Socket版本 <br /># * 使用方法: <br /># * $post_string = "app=socket&version=beta"; <br /># * request_by_socket('facebook.cn','/restServer.php',$post_string); <br /># */ <br /># function request_by_socket($remote_server
2010-10-04 18:30:00 1450
原创 处理PHP字符串的10个简单方法
<br />PHP处理字符串的能力非常强大,方法也是多种多样,但有的时候你需要选择一种最简单且理想的解决方法。文章列举了10个PHP中常见的字符串处理案例,并提供了相对应的最理想的处理方法。 <br /> 1.确定一个字符串的长度<br /> 这是文章中最明显的一个例子,其中的问题是我们如何来确定一个字符串的长度,这里我们不能不提的就是strlen()函数:<br /> $text = "sunny day"; $count = strlen($text); // $count = 9<br />
2010-10-04 18:28:00 565
原创 PHP 数组遍历方法大全(foreach,list,each)
php下最灵活的东西都是数组,很多数据都是通过数组的方式显示,这里整理下数组的遍历方法,大家可以根据需要选用。在PHP中数组分为两类: 数字索引数组和关联数组。 <br />其中数字索引数组和C语言中的数组一样,下标是为0,1,2… <br />而关联数组下标可能是任意类型,与其它语言中的hash,map等结构相似。 <br /><br />下面介绍PHP中遍历关联数组的三种方法: <br /><br />方法1:foreach<br /><br /><?php <br />$sports = array(
2010-10-04 18:24:00 821
原创 PHP中文URL编解码(urlencode()rawurlencode()
<br />PHP中对于URL进行编码,可以使用 urlencode() 或者 rawurlencode(),二者的区别是前者把空格编码为 '+',而后者把空格编码为 '%20',不过应该注意的是,在编码时应该只对部分URL编码,否则URL中的冒号和反斜杠也会被转义。<br />下面是详细解释:////// <br />string urlencode ( string str) <br />返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为
2010-10-04 18:06:00 1910
原创 排序 时间复杂度
<br />冒泡排序是稳定的,算法时间复杂度是O(n ^2)。 <br />2.2 选择排序(Selection Sort) <br />选择排序的基本思想是对待排序的记录序列进行n-1遍的处理,第i遍处理是将L[i..n]中最小者与L[i]交换位置。这样,经过i遍处理之后,前i个记录的位置已经是正确的了。 <br />选择排序是不稳定的,算法复杂度是O(n ^2 )。 <br />2.3 插入排序 (Insertion Sort) <br />插入排序的基本思想是,经过i-1遍处理后,L[1..i-1]己
2010-10-03 12:30:00 2677
原创 利用php调用so库文件中的代码
<br /><br />某个功能被编译到so文件中,那么如何通过php来调用它?一个方法是写一个php模块(php extension),在php中调用该模块内的函数,再通过该模块来调用so中的函数。下面做一个简单的例子,使用的操作系统是RHEL5。<br />首先做一个简单的so文件:/** * hello.c * To compile, use following commands: * gcc -O -c -fPIC -o hello.o hello.c * gcc -s
2010-10-03 11:22:00 3018
原创 php 缓存 函数
<br />有些信息比方经常不变的,但是还是能变的信息放在缓存中以加快显示速度,这是很有价值的,所谓的缓存,通俗的理解就是一些保存在服务器端的共用信息.它是于服务器同生死的,我们在保存缓存的时候可以指定下次更新的时间的判断,比方要在5分钟更新一次,可以记录上次更新的时间,和当前时间比较,如果大于 5 分钟 ,读取数据库,更新换成,否则直接读取缓存数据,当然,缓存需要客户端用户激活的,只需一次.<br />ob_start()函数:打开输出缓冲区.<br /> 函数格式 void ob_start(v
2010-10-01 22:26:00 791
原创 php的二叉树的表示
<br /><br />php已经发行到了5.2.10了,5.3.0rc4也已公布。6.0早就出了测试版。php是日趋完美。呵呵<br />但是在c++中有个重要的概念就是链表。而链表中有个重要概念就是二叉树。实现二叉树关键是一个节点如何表示。<br />我们知道c++中可以使用以下代码表示一个二叉树的节点(使用模板):<br />template <class elemType><br />struct nodeType<br />{<br /> elemType info;<br /> no
2010-10-01 10:24:00 568
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人