当前位置: 首页 > wzjs >正文

国安中建建设集团网站游戏网站交换友情链接

国安中建建设集团网站,游戏网站交换友情链接,北京最新消息今天新增病例,wordpress默认导航栏插值查找(Interpolation Search) 插值查找是一种改进的二分查找,适用于均匀分布的有序数组。它通过预测要查找的值可能的位置来减少搜索次数。 public class InterpolationSearch {public static int interpolationSearch(int[] arr, int t…

插值查找(Interpolation Search)

插值查找是一种改进的二分查找,适用于均匀分布的有序数组。它通过预测要查找的值可能的位置来减少搜索次数。

public class InterpolationSearch {public static int interpolationSearch(int[] arr, int target) {int left = 0, right = arr.length - 1;while (left <= right && target >= arr[left] && target <= arr[right]) {// 计算插值位置int pos = left + ((target - arr[left]) * (right - left)) / (arr[right] - arr[left]);if (arr[pos] == target) {return pos;}if (arr[pos] < target) {left = pos + 1;} else {right = pos - 1;}}return -1; // 未找到}public static void main(String[] args) {int[] arr = {10, 20, 30, 40, 50, 60, 70, 80, 90};int target = 50;int index = interpolationSearch(arr, target);System.out.println(index == -1 ? "未找到" : "找到索引: " + index);}
}

斐波那契查找(Fibonacci Search)

斐波那契查找基于斐波那契数列来划分搜索区域,适用于数据量大、顺序存储、访问代价较高的场景(如磁盘存储)。

import java.util.Arrays;public class FibonacciSearch {// 获取斐波那契数列public static int[] fibonacci(int size) {int[] fib = new int[size];fib[0] = 0;fib[1] = 1;for (int i = 2; i < size; i++) {fib[i] = fib[i - 1] + fib[i - 2];}return fib;}public static int fibonacciSearch(int[] arr, int target) {int n = arr.length;int fibSize = 20; // 预设的斐波那契数列大小int[] fib = fibonacci(fibSize);// 找到最小的斐波那契数,使其大于等于 nint k = 0;while (fib[k] < n) {k++;}// 创建扩展数组int[] temp = Arrays.copyOf(arr, fib[k]); // 长度扩展至 fib[k]for (int i = n; i < fib[k]; i++) {temp[i] = arr[n - 1]; // 用最大元素填充}int left = 0;  // 左边界int right = n - 1;  // 右边界while (left <= right) {int mid = left + fib[k - 2] - 1; // 计算 mid 位置if (temp[mid] < target) { left = mid + 1;k -= 1; // 右移 k-1} else if (temp[mid] > target) {right = mid - 1;k -= 2; // 左移 k-2} else {return (mid < n) ? mid : -1; // 防止访问填充部分}}return -1; // 未找到}public static void main(String[] args) {int[] arr = {10, 22, 35, 40, 45, 50, 80, 82, 85, 90, 100};int target = 50;int index = fibonacciSearch(arr, target);System.out.println(index == -1 ? "未找到" : "找到索引: " + index);}
}


🔹 区别与适用场景

查找方法    适用场景    时间复杂度    额外空间    适合数据
插值查找    数据分布均匀    平均 O(log log n),最坏 O(n)    O(1)    均匀分布的大规模数据
斐波那契查找    访问代价高的有序数据    O(log n)    O(1)    需要减少访问次数的场景
🎯 总结:

插值查找更快,但对数据分布要求高;

斐波那契查找适用于存储访问成本高的情况,比如磁盘存储。

http://www.dtcms.com/wzjs/50590.html

相关文章:

  • 企业网站找私人做什安卓嗅探app视频真实地址
  • 域名注册商网站宁波seo如何做推广平台
  • 地方门户网站运营百度排名查询
  • 怎样用dw做 网站首页英文网站推广
  • 江都建设局网站李局北京seo顾问推推蛙
  • 做网站卖产品在线h5免费制作网站
  • 重庆互联网公司排行榜简述优化搜索引擎的方法
  • 淘宝客网站程序购米百度爱采购优化排名软件
  • 经典企业网站天津seo标准
  • 国内建站 wordpress定向推广
  • 石家庄网站建设接单怎么推广app让人去下载
  • 对日软件开发流程seo教学网seo
  • 品牌网站建设服务商看网站时的关键词
  • 省级门户网站建设洛阳市网站建设
  • 生鲜网站建设规划书范文广州的百度推广公司
  • 如何自己做网站 开直播百度seo霸屏软件
  • 网站动画广告条怎么做的企业培训课程有哪些内容
  • 信阳企业网站建设深圳百度推广联系方式
  • 南通网站建设要多少钱免费发布信息网平台
  • 购物商城网站建设公司百度关键词屏蔽
  • 青岛网站设计建立公司指数运算公式大全
  • 国内人做韩国网站一般都卖什么手续代写文章兼职
  • 哪些网站的做的好看的排名轻松seo 网站
  • 武汉网站建设报价明细表google官网
  • 重庆工程公司有哪些南京seo推广公司
  • 端午节网站建设推广接单平台哪个好
  • 网站推广需要域名迁移百度下载软件
  • wordpress简约HTML5东莞网站建设优化排名
  • 想学做网站可以在哪学百度竞价推广后台
  • html5动态效果的网站是怎么做的南宁seo排名优化