二分法查找: 『在有序数组的基础上通过折半方法不断缩小查找范围,直至命中或者查询失败。』 二分法的存储要求:要求顺序存储,以便于根据下标随机访问 二分法的时间效率:O(Log(n)) 二分法的空间效率:原地查询 O(1) 二分法对应的搜索树是确定的。 二叉排序树查找: 『借助二叉排序树进行搜索,但因 ...
分类:
编程语言 时间:
2016-11-27 23:04:08
阅读次数:
226
基本思想 每次将一个待排序的记录,按其关键字大小,插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。 分类 根据寻找插入位置方法分为 直接插入排序 折半(二分)插入排序 希尔插入排序 直接插入排序 基本思想 当插入第i(i≥1)个对象时,前面的V[0],V[1],…,V[i?1]已 ...
分类:
编程语言 时间:
2016-11-17 23:17:33
阅读次数:
229
今天这篇博客就聊聊几种常见的查找算法,当然本篇博客只是涉及了部分查找算法,接下来的几篇博客中都将会介绍关于查找的相关内容。本篇博客主要介绍查找表的顺序查找、折半查找、插值查找以及Fibonacci查找。本篇博客会给出相应查找算法的示意图以及相关代码,并且给出相应的测试用例。当然本篇博客依然会使用面向 ...
分类:
其他好文 时间:
2016-11-15 11:21:14
阅读次数:
243
折半查找(二分查找)是个常用基础算法了。个人觉得主要注意事项就是不要写递归吧。其实实际应用中递归能不用就不用,压栈出栈效率较低而且递归层级太多容易爆栈。 只要分别维护一个指向当前首尾的值即可消除递归。 实现: 传入一个数组arr(已升序排序)和要找的值k。找到了返回下标,找不到返回-1. ...
分类:
其他好文 时间:
2016-11-13 16:03:34
阅读次数:
126
1、 顺序查找:直接挨个挨个从A找到Z 找到想联系的人; 折半查找:根据你要查找的人的姓名首字母来排除一半的人,直接在它所在的另一半的范围 查找; 索引查找:直接根据你搜出你想要查找的联系人姓名,方可找到; 我认为折半查找的方案更优 2、 相对来说360安全通信录里的拨号功能比较好用,而且操作简单, ...
分类:
其他好文 时间:
2016-11-06 13:48:40
阅读次数:
188
bfs,折半搜索,因为直接搜大概有(12)^13?因为每个状态都会扩展出m种状态大概是(12)^13,然而可以折半搜索,只搜一半,状态数变成(12)^7可以接受,但是事实上极限数据要跑很长很长时间,据说正解是启发式搜索?没学过 ...
分类:
其他好文 时间:
2016-11-06 02:30:04
阅读次数:
271
二分查找又叫折半查找。 前提:数组是有序的。 思想:1、每次都拿中间的数的key进行比较,如果相等,找到; 2、如果key > 中间数,说明key在中间数的右边,接着拿右边的中间数和key比较; 3、如果key < 中间数,说明key在中间数的左边,接着拿左边的中间数和key比较; 4、循环上述过程 ...
分类:
其他好文 时间:
2016-11-05 00:09:03
阅读次数:
245
思路:折半搜索,每个数的状态只有三种:不选、选入集合A、选入集合B,然后就暴搜出其中一半,插入hash表,然后再暴搜另一半,在hash表里查找就好了。 ...
分类:
其他好文 时间:
2016-10-28 11:45:46
阅读次数:
155
二分查找 线性查找 1.二分查找 2.一棵 二叉树的 遍历方式 如果说 想不没明白怎么回事 那就基础 代表的顺序: if(有左支) indexNum(temp.left); syso //迭代完 左支的 第一句话 if(有右支) indexNum(temp.right); 这个就是 中序便利 ...
分类:
其他好文 时间:
2016-10-25 09:28:06
阅读次数:
394