数组搜索是指从指定数组中去搜索某个特定元素的位置。主要有以下搜索方式: 线性搜索(从头搜到尾遍历):这种方法对于元素过多的数组,性能极低。 二分搜索(又称二分查找法、折半查找法):比较有效,但是前提是数组元素必须有序。 哈希表查找法:哈希表查找是通过对记录的关键字值进行运算,直接求出结点的地址,是关 ...
分类:
编程语言 时间:
2019-02-09 01:01:52
阅读次数:
153
[toc] 介绍 在计算机科学中,二分搜索(英语:binary search),也称折半搜索(英语:half interval search)、对数搜索(英语:logarithmic search),是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找 ...
分类:
编程语言 时间:
2019-02-04 15:30:12
阅读次数:
177
DFS(深度优先搜索): 深度优先搜索算法(英语:Depth-First-Search,简称DFS)是一种用于遍历或搜索树或图的算法。 沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过或者在搜寻时结点不满足条件,搜索将回溯到发现节点v的那条边的起始节点。整个进程反复进行 ...
分类:
其他好文 时间:
2019-02-01 17:10:22
阅读次数:
213
Table of Contents 1. "前言" 2. "中点值计算" 3. "搜索区间与终止条件" 4. "等于某值" 5. "第一个不小于" 6. "第一个大于" 7. "最后一个不大于和最后一个小于" 8. "结尾" 9. "参考链接" 前言 曾经一度觉得二分搜索算法是一个比较简单的算法,直 ...
分类:
编程语言 时间:
2019-02-01 16:25:21
阅读次数:
216
嗯... BFS是图的搜索算法之一,与深度优先搜索不同的是:广度优先搜索会先搜索到与起始点距离较近的点,而深搜却是沿着一个分支递归到最后.... 与深搜的对比: 深搜用栈(stack)来实现: 1.把起始顶点压入栈中 2.每次从栈顶取出一个顶点,搜索所有它的未访问相邻顶点,把这些顶点压入栈中 3.重 ...
分类:
其他好文 时间:
2019-01-31 23:00:24
阅读次数:
210
《对象搜索算法与回收算法》介绍了垃圾回收的基础算法,相当于垃圾回收的方法论。接下来就详细看看垃圾回收的具体实现。 上文提到过现代的商用虚拟机的都是采用分代收集的,不同的区域用不同的收集器。常用的7种收集器,其适用的范围如图所示 Serial、ParNew、Parallel Scavenge用于新生代 ...
分类:
其他好文 时间:
2019-01-09 18:41:37
阅读次数:
179
二分搜索用于在已经排序好的集合中搜索值,每次与中间值对比,小于则搜索前半段,大于中间值则在后半段,继续二分搜索,实现代码: 如果查询不到值返回的是负的最后查询的中间值的位置,负值变正后+1 则可用来有序插入搜索值,使列表保持排序。 ...
分类:
编程语言 时间:
2018-12-29 13:40:54
阅读次数:
190
算法第五章 | 回溯算法 一、 回溯算法 回溯法有“通用的解题法”之称。可以系统地搜索一个问题的所有解或任一解,是一个既带有系统性又带有跳跃性的搜索算法。 它在问题的解空间树中,按深度优先策略,从根节点出发搜索解空间树。算法搜索至解空间树的任一结点时,先判断该结点是否包含问题的解。如果肯定不包含,则 ...
分类:
编程语言 时间:
2018-12-23 16:44:29
阅读次数:
244
递归与分治策略 二分搜索技术 我们所熟知的二分搜索算法是运用分治策略的典型例子,针对这个算法,先给出一个简单的案例。 目的:给定已排好序的n个元素a[0:n-1],现要在这n个元素中找出一特定的元素x。 我们首先想到的最简单的是用顺序搜索方法,逐个比较a[0:n-1]中元素,直至找出元素x或搜索遍整 ...
分类:
编程语言 时间:
2018-12-22 01:29:39
阅读次数:
215
一、引入 mro即method resolution order,主要用于在多继承时判断调的属性的路径(来自于哪个类)。之前查看了很多资料,说mro是基于深度优先搜索算法的。但不完全正确在Python2.3之前是基于此算法,但从Python2.3起应用了新算法:C3算法。 二、为什么采用C3算法 C ...
分类:
编程语言 时间:
2018-12-06 22:20:21
阅读次数:
188