查找算法
数据结构和算法
舒克日记
努力分享算法数据结构小知识
展开
-
二分查找算法(非递归)
1、二分查找算法(非递归)介绍前面我们讲过了二分查找算法,是使用递归的方式,下面我们讲解二分查找算法的非递归方式二分查找法只适用于从有序的数列中进行查找(比如数字和字母等),将数列排序后再进行查找二分查找法的运行时间为对数时间O(㏒₂n) ,即查找到需要的目标位置最多只需要㏒₂n步,假设从[0,99]的队列(100个数,即n=100)中寻到目标数30,则需要查找步数为㏒₂100 , 即最多需要查找7次( 2^6 < 100 < 2^7)2、二分查找算法(非递归)代码实现数组 {1,原创 2022-05-25 17:22:18 · 1115 阅读 · 0 评论 -
插值查找算法
1、插值查找原理介绍插值查找算法类似于二分查找,不同的是插值查找每次从自适应mid处开始查找。将折半查找中的求mid 索引的公式 , low 表示左边索引left, high表示右边索引right,key 就是前面我们讲的 findValint mid = low + (high - low) * (key - arr[low]) / (arr[high] - arr[low]) ;/插值索引/对应前面的代码公式:int mid = left + (right – left) *原创 2022-05-11 16:06:44 · 140 阅读 · 0 评论 -
二分查找算法
1、概念二分查找属于递归查找的一种,其主要思想是将一个有序数组,分为二分,进行递归,反复为之。2、实际应用请对一个有序数组进行二分查找{1,8,10,89,1000,1234},输入一个数看看该数组是否存在此数,并且求出下标,如果没有就提示"没有这个数"。3、思路4、代码实现package com.qf.search;import java.util.ArrayList;import java.util.List;public class SeqSearch { /**原创 2022-05-11 14:59:22 · 1598 阅读 · 0 评论 -
线性查找算法 详细讲解
1、查找算法介绍在java中,我们常用的查找有四种:1) 顺序(线性)查找2) 二分查找/折半查找3) 插值查找4) 斐波那契查找2、查找算法介绍有一个数列: {1,8, 10, 89, 1000, 1234} ,判断数列中是否包含此名称【顺序查找】 要求: 如果找到了,就提示找到,并给出下标值。思路:如果查找到全部符合条件的值。3、代码实现package com.qf.search;public class LineSearch { public static void原创 2022-05-11 11:21:55 · 449 阅读 · 0 评论