PHP 快速排序算法

首先我们要理解一下快速排序的原理:找到当前数组中的任意一个元素(一般选择第一个元素),作为标准,新建两个空数组,遍历整个数组元素,

如果遍历到的元素比当前的元素要小,那么就放到左边的数组,否则放到右面的数组,然后再对新数组进行同样的操作,

不难发现,这里符合递归的原理,所以我们可以用递归来实现。

使用递归,则需要找到递归点和递归出口:

递归点:如果数组的元素大于1,就需要再进行分解,所以我们的递归点就是新构造的数组元素个数大于1

递归出口:我们什么时候不需要再对新数组不进行排序了呢?就是当数组元素个数变成1的时候,所以这就是我们的出口。

<?php
$arr = array(6,5,32,8,4,5,1);
function quick_sort($arr){
  if(!is_array($arr))return false;
  $length = count($arr);
  if($length<=1)return $arr;
  $left = $right = array();
  for($i = 1; $i<$length;$i++){
    if($arr[$i]<$arr[0]){
      $left[] = $arr[$i];
    }else{
      $right[] = $arr[$i];
    }
  }
  $left = quick_sort($left);
  $right = quick_sort($right);
  return array_merge($left,array($arr[0]),$right);
}
echo "<pre>";
print_r(quick_sort($arr));

输出:

Array
(
    [0] => 1
    [1] => 4
    [2] => 5
    [3] => 5
    [4] => 6
    [5] => 8
    [6] => 32
)

 

MySQL初始化配置

安装 mysql-5.5.24-win32.msi

设置密码 root

测试是否安装成功

CMD下

set path

mysql.exe -hlocalhost -uroot -proot

msohtmlclipclip_image001

修改php配置文件php.ini(复制php.ini-development进行修改)

msohtmlclipclip_image002

开启PHP扩展文件目录

extension_dir = “ext”

msohtmlclipclip_image003

extension=php_mysql.dll

msohtmlclipclip_image004

当Apache启动时,指定php.ini文件的路径

PHPIniDir “C:\wamp\PHP5”

msohtmlclipclip_image005

msohtmlclipclip_image006

保存重启Apache

测试PHP与MySQL是否连通

//使用PHP的函数,来连接MySQL服务器

//Resource id #3是一个资源的数据类型,说明MySQL已经成为了PHP的资源了。

echo mysql_connect(“localhost”,”root”,”root”);

msohtmlclipclip_image007

PHP初始化配置

解压到安装目录

msohtmlclipclip_image001[4]

在Apache里加载PHP5模块,并指定扩展名与文件内容进行绑定

#Apache启动时,去加载PHP5的模块

LoadModule php5_module C:\wamp\PHP5\php5apache2_2.dll

#将指定的扩展名,与文件内容进行绑定

AddType application/x-httpd-php .php .html

msohtmlclipclip_image002[4]

配置环境变量

msohtmlclipclip_image003[4]

修改php配置文件php.ini(复制php.ini-development进行修改)

msohtmlclipclip_image004[4]

开启PHP扩展文件目录

extension_dir = “ext”

msohtmlclipclip_image005[4]

extension=php_mysql.dll

msohtmlclipclip_image006[4]

当Apache启动时,指定php.ini文件的路径

PHPIniDir “C:\wamp\PHP5”

msohtmlclipclip_image007[4]

msohtmlclipclip_image008[5]

旧的不去,新的又来

为博客增加了相册,使用了NextGEN Gallery的图集插件,本想lightbox,但一直没有效果。插件自带的thickbox也无法使用。苦恼了一个上午,只好作罢。又搜索其他可使用的图片浏览器插件,搜索到了Showfom修改的Auto Highslide,安装启用还是无法使用。所以本人一直处于撞墙的边缘。找到作者的文章,仔细读了一遍A&Q,终于发现了问题。问题出现的原因是主题的 header.php 文件没有包含<?php wp_footer();?> ,于是,添加了代码之后插件可以使用了,把相关软件都启用了一遍也都有了效果,我去,终于舒了口气。旧问题解决,但新问题不断,博客右侧栏的关闭展开的效果不见了,我这个命啊~ 不管了,至少不算太难看。

音乐播放器短码

前两天向ljy请教了WordPress的shortcode的一些问题,对方非常热情,非常感谢。
由于喜欢音乐,在此之前有个音乐分享博客,需要经常添加播放器,所以花了点时间写了个添加mp3的短码。

将下列代码复制到主题文件夹下的fucntions.php里

[php]function player02($atts, $content = null) {
extract(shortcode_atts(array(&quot;width&quot;=&gt;’300′,&quot;auto&quot;=&gt;’false’),$atts));
return ‘&lt;embed width=&quot;’.$width.’&quot; height=&quot;20&quot; src=&quot;http://blog.liuguofeng.com/player/music/02.swf?file= ‘.$content.’ &amp;songVolume=100&amp;backColor=0000000&amp;frontColor=80ff00&amp;autoStart=’.$auto.’&amp;repeatPlay=false&amp;showDownload=true&quot;&gt;&lt;/embed&gt;’;}
add_shortcode(&quot;player02&quot;, &quot;player02&quot;);[/php]

然后编写文章时添加如下代码就ok了:

[php][pl#ayer02 width=&quot;长度&quot;]mp3链接地址[/pl#ayer02] (使用时去掉#)[/php]

当然可自定义的区域很多,不过个人暂时还不需要。所以只添加了长度的自定义字段。其他播放器同理,哈哈。

演示:

[player02 width=”320″]http://storage.live.com/items/B45EC5E6AFEED324!694?filename=%E6%A2%81%E6%99%93%E9%9B%AA%20-%20Stand%20in%20Grave.mp3[/player02] Continue reading 音乐播放器短码