
算法
从心所愿
既然选择了远方,就要风雨兼程,只为了给家人一个更好的生活!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
八大排序算法
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,转载 2017-08-07 12:59:11 · 373 阅读 · 0 评论 -
php四种基础算法:冒泡,选择,插入和快速排序法
需求:分别用 冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中 的值按照从小到的顺序进行排序。 $arr(1,43,54,62,21,66,32,78,36,76,39);1. 冒泡排序法 * 思路分析:法如其名,就是像冒泡一样,每次从数组当中 冒一个最大的数出来。 * 比如:2,4,1 // 第一次 冒出的泡是4 *转载 2017-08-07 13:00:58 · 320 阅读 · 0 评论 -
算法测试集锦(一)
1.从一到100 0000中找到重复的两个数。ini_set('memory_limit', '256M');$str = str_repeat('0', 1000000);$arr = range(0, 999999);array_push($arr, 77777);$chunk_arr = array_chunk($arr, 10000);$targe原创 2017-08-30 07:01:56 · 2215 阅读 · 0 评论 -
求最短路径之弗洛伊德(Floyd)算法之php实现
求最短路径算法,目前我知道的有迪杰斯特拉(Dijkstra)算法和弗洛伊德(Floyd)算法。相比前一种算法,后一种算法相对更加简洁优雅,所以先用php实现此种算法。 既然是有最短路径,肯定是对于由多个顶点组成的图形结构来应用的,且上述算法对无向图、有向图都使用。 首先是构造描述图形结构的邻接矩阵和描述对应顶点的最小路径的前驱矩阵的二维数组。...原创 2018-08-28 07:07:41 · 891 阅读 · 0 评论 -
关键路径算法之php实现
拓扑排序主要是为解决一个工程能否顺序进行的问题,但有时我们还需要解决工程完成需要的最短时间问题。 我们把路径上各个活动所持续的时间之和称为路径长度,从源点到汇点具有最大长度的路径叫关键路径,在关键路径上的活动叫关键活动。 关键路径算法基于拓扑排序算法,这里直接上代码,以后有机会再详解。 class EdgeNode {...原创 2018-09-02 17:08:35 · 464 阅读 · 0 评论 -
二叉排序树插入算法之php实现
插入是基于查找的过程,如果找不到,通过最后一个被查找的节点判断,如果查找值小于该节点,将查找值赋予该节点的左孩子,否则赋予该节点的右孩子。 代码如下:<?php class BinaryTree { public $data; public $lChild; public $rChild; public function __...原创 2018-09-15 17:20:33 · 517 阅读 · 0 评论 -
二叉排序树删除操作之php实现
删除节点有三种情况: 1.叶子节点 2.仅有左或右子树的节点 3.左右子树都有的节点 <?php class BinaryTree { public $data; public $lChild; public $rChild; public function __construct($da...原创 2018-09-16 22:41:12 · 469 阅读 · 0 评论 -
二叉排序树查找算法之php实现
二叉排序树,又称为二叉查找树。它或者是一棵空树,或者是具有下列性质的二叉树。 1.若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值 2.若它的右子树不空,则右子树上所有结点的值均小于它的根结点的值 3.它的左、右子树也分别为二叉排序树 构造一棵二叉排序树的目的...原创 2018-09-12 21:40:48 · 602 阅读 · 0 评论