DataStruct
PhpEr_贵
我是大笨蛋
展开
-
php 递归函数 解决 皇后问题 速度有点慢~
<?php //递归算法解决 皇后问题 //皇后问题 在一个n*n的矩阵中,放置n个皇后 ,要求每个皇后不同行,不同列,不在对角线上 //递归解决 //place(k,n)表示要在k列放置一个皇后,那么就有k-1个皇后已经放好了 //place(k+1,n)则表示k个皇后已近放好了,规模小于plack(k,n) //递归模型 //place(i,n) i>n;输出 //place(k,n原创 2014-04-02 20:08:17 · 694 阅读 · 0 评论 -
php 实现简单链式二叉树 创建 和遍历
<?php //链式二叉树 class node { public $data; public $left; public $right; } // 建立树形为A(B(D(,G)),C(E,F)) 二叉树 $str = 'A(B(D(,G)),C(E,F))'; //创建二叉树 function createTree($str) { $len = strlen($str); $he原创 2014-04-10 16:28:26 · 361 阅读 · 0 评论 -
PHP 实现见得的二叉排序树查找算法
<?php //树表查找,二叉排序树 //基本特点: //1.左子树要么是空要么key值小于父亲结点key 2.右子树要么是空要么大于父亲结点key //左右孩子又是一棵二叉排序树 //时间复杂度 //查找的次数(关键之比较次数)不会超过树的深度,对于不同形态的树的形状平均查找的次数不同, //最坏的情况退化的单链表,为O(n) //平均查找长度为log2(n) //比二分查找更容易维护 d原创 2014-04-23 10:50:21 · 889 阅读 · 0 评论 -
基本查找算法 PHP 实现 保存 顺序查找,二分查找 分块查找
<?php //基本查找算法 define('LEN',99999); define('MAX',-99999); class Node { public $data;//数据域 public $key; //关键之查找 } $seqList = new SplFixedArray(LEN); function Init(SplFixedArray $seqList) { for($i=0原创 2014-04-22 11:23:00 · 579 阅读 · 0 评论 -
PHP QuickSort 递归简单实现
<?php $arr = range(1, 10); shuffle($arr); var_dump($arr); function quickSort(&$arr,$start,$end) { $i = $start; $j = $end ; $tmp = $arr[$i]; if($i<$j){ while($i!=$j){ while($i$tmp){ //把比tmp小原创 2014-04-19 22:27:32 · 553 阅读 · 0 评论 -
简单Floyd php 实现 只为熟悉算法
<?php //有向图 邻接矩阵存储 $Map = array( 1=>array(1=>0,2=>5,4=>7), 2=>array(2=>0,3=>4,4=>2), 3=>array(1=>3,2=>3,3=>0,4=>2), 4=>array(3=>1,4=>0) ); //序列矩阵 //初始化为$Map $A = $Map; //记录路劲 $Path = ar原创 2014-04-18 21:52:27 · 500 阅读 · 0 评论 -
php 简单并查集实现
<?php $n = 10;//10个结点 $case = 7; //7组关系,如下 $data = array( array(2,4), array(7,5), array(1,3), array(8,9), array(1,2), array(5,6), array(2,3), ); $UFSTree = array(); function Make_原创 2014-04-09 12:47:12 · 568 阅读 · 0 评论 -
hdu oj 1233 最小生成树 采用Prim算法
#include #include //随后的N(N-1)/2行对应村庄间的距离,每行给出一对正整数 //这里可以看出这是一个完全无向连通图 //很明显采用最小生成树解决 //这里采用邻接矩阵来存储 #define NMAX 100 #define NMIN 0xfffff //主要是学习图数据结构,存储的时候还是定义规范点 typedef struct { int no;原创 2014-04-16 14:49:50 · 466 阅读 · 0 评论 -
hdu oj 1232 并查集
#include #include struct node { int data; int rank; int parent; }; node Tree[1003]; void Make_set(int n) { int i; for(i=1;i<=n;i++) { Tree[i].data = i; Tree[i].parent = i; Tree[i].r原创 2014-04-16 13:07:35 · 422 阅读 · 0 评论 -
php 实现串查找Horspool
//Horspool 算法 //从右边开始扫面pattern(长度为m) //假设串与pattern最后一个字符是c,当c在不同的情况下移动距离如下 //1.在模式中不存在c,直接向右移动m //2.在模式中存在c,但是不是最后一个字符,那么把模式最右边的c和当前串中的c对齐 //3.如果模式最后一个字符恰好和当前字符c相同,但是模式前m-1个字符不存在c了,那么好使直接移动m长度(类似原创 2014-04-13 16:15:06 · 431 阅读 · 0 评论