分类 代码人生 下的文章
PHP实现常见排序
(图片来自互联网)
最近老高复习了下数据结构,此文会慢慢更新!
$test_array[$j+1]){
$tmp = $test_array[$j];
$test_array[$j] = $test_array[$j+1];
$test_array[$j+1] = $tmp;
}
}
}
echo 'Bubble sort takes:' . number_format((microtime(1) - $start), 6);
echo "\n";
# 选择排序
# 依次选择最小(大)的元素,等选择完毕自动有序
$test_array = $random_array;
$start = microtime(1);
$count = count($test_array);
for($i=0;$i<$count-1;$i++){
# $test_array[$i]为当前最小
for($j=$i+1;$j<$count;$j++){
# 从下一个开始比较
if($test_array[$i] > $test_array[$j]){
$tmp = $test_array[$j];
$test_array[$j] = $test_array[$i];
$test_array[$i] = $tmp;
}
}
}
echo 'Select sort takes:' . number_format((microtime(1) - $start), 6);
echo "\n";
# 插入排序
# 就像别人给你发扑克牌,拿到一张牌就插到你手上,并使之有序
$test_array = $random_array;
$start = microtime(1);
$count = count($test_array);
# 直接跳过$i=0
for($i=1;$i<$count;$i++){
# 取$i左边的元素先比,比到最左
for($j=$i-1;$j>=0;$j--){
# 共$j+1个元素,其中前$j个有序
if($test_array[$j] > $test_array[$j+1]){
$tmp = $test_array[$j];
$test_array[$j] = $test_array[$j+1];
$test_array[$j+1] = $tmp;
}else{
break;
}
}
}
echo 'Insertion sort takes:' . number_format((microtime(1) - $start), 6);
echo "\n";
# 快速排序
# 有点递归的思想,随机一个基准,将集合分为两半,然后继续分解,直到元素个数为1或0个
$test_array = $random_array;
$start = microtime(1);
function quick_sort($arr){
$len = count($arr);
# 符合条件<=1即无需分组
if($len <= 1) return $arr;
# floor也行,主要是取整
$index = ceil($len/2);
$base = $arr[$index];
$left = array();
$right = array();
for($i=0;$i<$len;$i++){
if($i == $index) continue;
if($arr[$i] < $base){
$left[] = $arr[$i];
}else{
$right[] = $arr[$i];
}
}
$l = quick_sort($left);
$r = quick_sort($right);
return array_merge($l, (array)$base, $r);
}
quick_sort($test_array);
echo 'Quick sort takes:' . number_format((microtime(1) - $start), 6);
echo "\n";
centos下安装使用composer
composer的中文意思为作曲家,是php最新的包管理器。
tcpdump命令讲解
什么是tcpdump?
A powerful command-line packet analyzer; and libpcap, a portable C/C++ library for network traffic capture.
一个强大的抓包命令行工具,还有libpcap,一个跨平台的C/C++网络抓包库。
typecho插件编写教程7 - Helper类
Helper
类为我们封装了很多与插件有关的操作,并且全部是公共静态方法,比如获取系统配置、添加路由、添加面板等功能,是开发插件必不可少的工具。
插件帮手将默认出现在所有的typecho发行版中.因此你可以放心使用它的功能, 以方便你的插件安装在用户的系统里.
Helper类的注释已经写的很清楚了,老高在此仅挑几个常用的方法讲讲。
shadowsocks相关资源下载
鉴于很多同学找不到shadowsocks客户端服务端,老高在此提供最新的下载,如果某软件有更新,请留言提醒!
请注意老高不会对下载的软件负责,老高也没有做sha1、md5校验,都是直接下载下来的。。。
如果不放心的话,你有绕道的权利!
顺便分享几个站
直接下载Google Play的APK
直接下载chrome商店应用
网友 @disonlee 提供
让多说支持UA的显示
代码由 huhuhuhu 提供
地址 huhu呼呼 / Make DUOSHUO Show UA
老高的博客目前的评论系统使用了 多说 + typecho多说插件,最近才发现了多说还可以支持显示UA,动手吧。