住房和城乡建设部网站城市稽查深圳哪家建设网站公司好
2026/4/16 22:44:59 网站建设 项目流程
住房和城乡建设部网站城市稽查,深圳哪家建设网站公司好,html网页制作菜鸟教程,长沙百度快速排名优化二分查找#xff08;binary search#xff09;是一种基于分治策略的高效搜索算法。它利用数据的有序性#xff0c;每轮缩小一半搜索范围#xff0c;直至找到目标元素或搜索区间为空为止。 /* 二分查找#xff08;双闭区间#xff09; */ int binarySearch(int[] nums, in…二分查找binary search是一种基于分治策略的高效搜索算法。它利用数据的有序性每轮缩小一半搜索范围直至找到目标元素或搜索区间为空为止。/* 二分查找双闭区间 */intbinarySearch(int[]nums,inttarget){// 初始化双闭区间 [0, n-1] 即 i, j 分别指向数组首元素、尾元素inti0,jnums.length-1;// 循环当搜索区间为空时跳出当 i j 时为空while(ij){intmi(j-i)/2;// 计算中点索引 mif(nums[m]target)// 此情况说明 target 在区间 [m1, j] 中im1;elseif(nums[m]target)// 此情况说明 target 在区间 [i, m-1] 中jm-1;else// 找到目标元素返回其索引returnm;}// 未找到目标元素返回 -1return-1;}在算法题中我们常通过将线性查找替换为哈希查找来降低算法的时间复杂度。给定一个整数数组 nums 和一个目标元素 target 请在数组中搜索“和”为 target 的两个元素并返回它们的数组索引。返回任意一个解即可。这是算法第一题两数之和。1暴力枚举/* 方法一暴力枚举 */int[]twoSumBruteForce(int[]nums,inttarget){intsizenums.length;// 两层循环时间复杂度为 O(n^2)for(inti0;isize-1;i){for(intji1;jsize;j){if(nums[i]nums[j]target)returnnewint[]{i,j};}}returnnewint[0];}2哈希查找借助一个哈希表键值对分别为数组元素和元素索引。循环遍历数组。/* 方法二辅助哈希表 */int[]twoSumHashTable(int[]nums,inttarget){intsizenums.length;// 辅助哈希表空间复杂度为 O(n)MapInteger,IntegerdicnewHashMap();// 单层循环时间复杂度为 O(n)for(inti0;isize;i){if(dic.containsKey(target-nums[i])){returnnewint[]{dic.get(target-nums[i]),i};}dic.put(nums[i],i);}returnnewint[0];}线性搜索适用于小型或频繁更新的数据二分查找适用于大型、排序的数据哈希查找适用于对查询效率要求较高且无须范围查询的数据树查找适用于需要维护顺序和支持范围查询的大型动态数据。用哈希查找替换线性查找是一种常用的优化运行时间的策略可降低时间复杂度。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询