![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构和算法
SpecialShooting
这个作者很懒,什么都没留下…
展开
-
插值查找算法的公式和实现
主要思路和解决的问题: 1.插值查找类似二分查找,不同的是插值查找不在是简单的每次区中间的数进行比较,插值查找每次从自适应mid处开始查找,使用一个公式来进行下标的定位,通过这个公式可以较为精确的在一个顺序的数组中大概的定位到要查询元素的位置. 2.插值查找主要解决的问题就是:比如一个[1,2,3,4,5,6,7,8]这样的顺序数组,我如果想找的元素是1,那么我通过二分查找需要比较查找3次,反而比传统的遍历,比较的次数还多,插值查找主要就是解决这种问题 3.插值查找通过将一个公式,这个公式是结合要查找的值,原创 2020-08-06 22:38:45 · 960 阅读 · 0 评论 -
二分查找的递归和非递归的实现
主要思想 1.使用二分查找需要在一个顺序的数组中进行,进行查找的数组是有序的 2.主要思想是在查询时不是简单的从头遍历,而是从中间开始,比较要查找的值 和数组中间的数值的大小,由于数组是有序的(假设是升序),如果要找的值比中 间值小,那么下一次就直接从中间值的左边找,这样就缩小了查找的范围,下次 再从左边的范围进行二分查找,继续比较缩小范围. 代码实现 一.递归 public class BinarySearch { /** * 二分查找 * 思路: * 将一个有序原创 2020-08-06 22:03:46 · 124 阅读 · 0 评论 -
迷宫问题的分析和回溯法解决
问题描述 来搜这个问题的肯定是对这个问题有一定的了解,在这里就简单讲一下什么是迷宫问题. 就是可以用一个二维数组来描绘一个迷宫,其中数字1(或者其他数字都可以,这个无所谓)代表四周的边界和迷宫中的障碍物,这个二维数组类似下图: 图中1表示的部分就是墙和障碍物,0都是可以通行的 现在给定一个起点和终点,来寻找起点到终点之间的路径,例如从arr[1][1]到arr[7][7],就是从左上方到右下方. 问题分析 要走迷宫就要先制定一个计划或者说是规则,要告诉计算机我们先往哪个方向进行寻找,如果走不通再向哪个方原创 2020-07-11 20:54:32 · 1842 阅读 · 0 评论