算法
wiscourper_
这个作者很懒,什么都没留下…
展开
-
算法题 遇到就码
一、猴子选大王(循环队列) //猴子选大王 function monkey($n, $m) { $arr = range(1, $n); $i = 0; while(count($arr) > 1) { $tmp = $arr[$i]; unset($arr[$i]); if(($i + 1)%$m != 0) { $arr[] = $tmp; } // else { // ...原创 2020-05-28 13:36:12 · 9022 阅读 · 0 评论 -
递归
什么是递归 递归,在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。也就是说,递归算法是一种直接或者间接调用自身函数或者方法的算法。 通俗来说,递归算法的实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法来表示问题的解。 递归的基本原理 第一:每一级的函数调用都有自己的变量。 第二:每一次函数调用都会有一次返回。 第三:递归函数中,位于递归调用前的语句和各级被调用函数具有相同的执行顺序。 第四:递归函数中,位于递归调用后的语句的执行顺序和各个被调用函数的顺序相反。 第五转载 2020-05-19 08:25:21 · 9235 阅读 · 0 评论 -
常用排序
排序算法经过了很长时间的演变,产生了很多种不同的方法。对于初学者来说,对它们进行整理便于理解记忆显得很重要。每种算法都有它特定的使用场合,很难通用。因此,我们很有必要对所有常见的排序算法进行归纳。 排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。 内排序有可以分为以下几类: (...原创 2020-04-03 10:55:50 · 8756 阅读 · 0 评论 -
函数调用
函数调用会在内存形成一个"调用记录",又称"调用帧"(call frame),保存调用位置和内部变量等信息。如果在函数A的内部调用函数B,那么在A的调用记录上方,还会形成一个B的调用记录。等到B运行结束,将结果返回到A,B的调用记录才会消失。如果函数B内部还调用函数C,那就还有一个C的调用记录栈,以此类推。所有的调用记录,就形成一个"调用栈"(call stack)。 例如: #include&...原创 2020-04-01 09:41:22 · 9129 阅读 · 0 评论