数据结构和算法
文章平均质量分 72
落叶成冰
一个人如果没有梦想,那和咸鱼有什么分别!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
归并排序
<?php// 归并排序// 时间复杂度:O(nlog2n)// 合并两个有序数组function mergeArray($arra, $arrb){ $ret = array(); $lena = count($arra); $lenb = count($arrb); $i = $j = 0; while($i < $lena && $j < $lenb) {原创 2017-02-13 16:27:30 · 228 阅读 · 0 评论 -
希尔排序
<?php// 希尔排序// 时间复杂度:O(nlog2n)// 希尔(Shell)排序又称为缩小增量排序,它是一种插入排序.// 它是直接插入排序算法的一种威力加强版.function shellSort(&$arr){ $size = count($arr); $gap = intval($size/2); //间隔 while($gap >= 1) { for($i =原创 2017-02-13 21:55:00 · 209 阅读 · 0 评论 -
pkcs5填充
<?php/** * pkcs5 padding */function pkcs5_pad($text, $blocksize = 8) { // $pad 既是要填充的值也是要填充的长度 $pad = $blocksize - (strlen($text) % $blocksize); return $text . str_repeat(chr($pad), $pad);}/原创 2017-02-24 15:00:42 · 3275 阅读 · 0 评论 -
有限状态机的简单使用案例:“将字符串中多于一个的空格变为一个空格输出”
<?php// 有限状态机的简单应用// 解决问题:将字符串中多于一个的空格变为一个空格输出$str = 'Memcached is simple yet powerful.'; //最初字符串var_dump($str);$state = 0; // 初始状态$index = 0;$len = strlen($str); // str length$input原创 2017-03-09 00:55:20 · 489 阅读 · 0 评论 -
PHP 实现猜数游戏
猜数游戏有两种玩法:第一种:两个人玩,一方出数字,一方猜。出数字的人要想好一个指定位数的数,数字可重复,不能让猜的人知道。猜的人就可以开始猜。每猜一个数,出数者就要说大过或小过出的数。第二种:两个人玩,一方出数字,一方猜。出数字的人要先想好一个没有重复数字的4位数,不能让猜的人知道。猜的人就可以开始猜。每猜一个数,出数者就要根据这个数字给出几A几B,其中A前面的数字表示位置正确原创 2017-02-27 00:39:49 · 4471 阅读 · 1 评论 -
php 扩展 hash 模块的基本使用
<?phpecho '';$algos = hash_algos(); //列出所有支持的hash算法// print_r($algos);// ------------------------------------------------------// 字符串hash$data = 'The quick brown fox jumped over the lazy dog.原创 2017-03-06 22:31:07 · 1928 阅读 · 0 评论 -
堆排序
堆的定义:n个关键字序列Kl,K2,…,Kn称为(Heap),当且仅当该序列满足如下性质(简称为堆性质):(1) ki=号。k(i)相当于二叉树的非叶子结点,K(2i)则是左子节点,k(2i+1)是右子节点。若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:树中任一非叶子结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。原创 2017-02-18 10:58:44 · 227 阅读 · 0 评论 -
选择排序
// 选择排序// 时间复杂度:O(n^2)function selectionSort(&$arr){ $len = count($arr); for($i = 0; $i < $len - 1; $i++) { $index = $i; //最小值索引 for($j = $i + 1; $j < $len; $j++) { if($arr[$j] < $arr[$ind原创 2017-02-10 16:39:19 · 228 阅读 · 0 评论 -
直接插入排序
// 直接插入排序// 时间复杂度:O(n^2)function insertionSort(&$arr){ $len = count($arr); for($i = 1; $i < $len; $i++) { if($arr[$i] >= $arr[$i-1]) continue ; $curval = $arr[$i]; $index = $i; while($原创 2017-02-10 23:42:52 · 275 阅读 · 0 评论 -
PHP 使用 openssl 扩展实现公钥加密
使用 openssl 命令生成公钥和私钥// 生成私钥# openssl genrsa -out rsa_private_key.pem 1024// 生成公钥# openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem下面是示例代码:<?php// openssl 扩展检测var_dum原创 2017-03-07 21:18:04 · 6381 阅读 · 0 评论
分享