分类 算法 中的文章

dijkstra算法 PHP 实现

20171119 利用周末优化了一下代码。这次完全默写了出来。感觉好多了 这个是根据算法图解自己写的,理解的不是很好,注释都在代码里面,过几天再默写一下,好好理解一下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66……

阅读全文

通过快排和归并排序思考分治法

话说以前看过很多算法相关的书,大部分讲的都很模糊,然后直接上代码,当时看似理解了,可是时间一长就忘光光了,以前看书学习的都是如何去做,而自己也没有深入的思考过为何这么做,单纯的就是背下来那种。当学习到一定程度之后,发现基础知识还是非常重要的。 今天要说的就是分治法,什么是分治法,就……

阅读全文

PHP归并排序

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 <?php function sortArr($arr) { if (count($arr) < 2) { return $arr; } $mid = count($arr) / 2; $arr1 = array_slice($arr, 0, $mid); $arr2 = array_slice($arr, $mid, count($arr)); $arr1 = sortArr($arr1); $arr2 = sortArr($arr2); return mergeArr($arr1, $arr2); } function mergeArr($arr1, $arr2) { if (!is_array($arr1)) { $arr1[] = $arr1; } if (!is_array($arr2)) { $arr2[] = $arr2; } $i =0; $j = 0; $arr1Length = count($arr1); $arr2Length = count($arr2); $returnArr = []; while($i < $arr1Length && $j < $arr2Length) { if($arr1[$i] > $arr2[$j]) { $returnArr[] =……

阅读全文