算法
文章平均质量分 58
局外人ctx
这个作者很懒,什么都没留下…
展开
-
准备面试需要知道的经典算法--二分查找
二分查找 二分查找也称折半查找,是一种在有序数组中查找某一特定元素的搜索算法。从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜 素过程结束; 如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组 为空,则代 表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。折半搜索每次把搜索区域减少一半,时间复杂度原创 2016-12-22 16:26:50 · 591 阅读 · 0 评论 -
准备面试需要知道的经典算法--快排
一、 快速排序 快速排序使用分治法策略来把一个串行分为两个子串行,平均时间复杂度Ο(n log n)。 算法步骤: 1 从数列中挑出一个元素,称为 “基准”; 2 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区 退出之后,该基准就处于数列的中间位置。这个称为分区操作; 3 递归地把小于基准值元素的原创 2016-12-22 14:26:16 · 384 阅读 · 0 评论 -
准备面试需要知道的经典算法--堆排序
堆排序 堆的性质:子节点的值总是小于(或大于)它的父节点的值。 堆排序的平均时间复杂度为Ο(nlogn)。 算法步骤: 1 创建一个堆H[0..n-1]; 2 把堆首(最大值)和堆尾互换; 3 把堆的尺寸缩小1,并调整堆使其符合堆的性质; 4 重复步骤2,直到堆的尺寸为1。 PHP代码实现: function adjust_heap(&$arr, $start,原创 2016-12-22 16:05:54 · 355 阅读 · 0 评论