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

国外做旅游攻略的网站好中国建筑第八工程局官网

国外做旅游攻略的网站好,中国建筑第八工程局官网,有网站怎么做企业邮箱,天元建设集团有限公司破产了吗#x1f308;键盘敲烂#xff0c;年薪30万#x1f308; 目录 普通版本的二分查找#xff1a; right只负责控制边界(少了两次比较)#xff1a; 时间复杂度更稳定的版本#xff1a; BSLeftmost#xff1a; BSRightmost#xff1a; 普通版本的二分查找#xff1a; … 键盘敲烂年薪30万 目录 普通版本的二分查找 right只负责控制边界(少了两次比较) 时间复杂度更稳定的版本 BSLeftmost BSRightmost 普通版本的二分查找 细节1循环判定条件是left right⭐细节2mid (left right ) 1 原因见代码注释 /**** 二分查找的实现 3个版本* 时间复杂度Olongn* 空间复杂度O1** 细节1循环判定条件是left right* 细节2mid计算要用 因为left right 可能越界* 例如right Integer.MAX_INT-1 left 0;* 第一轮计算没问题 假设mid target* left mid 1; 这是后left right 就超出int的最大范围变成负数* 原因很简单java没有无符号数最高位表示符号位/ 运算是先将补码转原码 位运算是直接再二进制上运算*/ public class Demo1 {public static void main(String[] args) {int[] nums {1,4,6,8,15,76,145};int target 145;int index1 method1(nums, target);System.out.println(target 索引为 index1);System.out.println(target 索引为 index2);}private static int method1(int[] nums, int target) {int left 0, right nums.length-1;while(left right){//细节 用无符号右移运算符int mid (left right) 1;if(nums[mid] target){right mid - 1;}else if (nums[mid] target){left mid 1;}else{return mid;}}return -1;} }right只负责控制边界(少了两次比较) 改动1while条件是left right改动2right nums.length public class Demo1 {public static void main(String[] args) {int[] nums {1,4,6,8,15,76,145};int target 145;int index2 method2(nums, target);System.out.println(target 索引为 index2);} }private static int method2(int[] nums, int target) {int left 0, right nums.length; //right 只代表有边界不参与比较while(left right){int mid (left right) 1;if(nums[mid] target){left mid 1;}else if(nums[mid] target){right mid;}else {return mid;}}return -1;}时间复杂度更稳定的版本 细节减少了if比较次数 public class Demo1 {public static void main(String[] args) {int[] nums {1,4,6,8,15,76,145};int target 145;int index3 method3(nums, target);System.out.println(target 索引为 index3);} } private static int method3(int[] nums, int target) {//这个最牛逼//减少循环内的比较次数int left 0, right nums.length;while(1 right - left){int mid (left right) 1;if(nums[mid] target){right mid;}else{left mid;}}if(nums[left] target){return left;}return -1;}BSLeftmost /**** 应用求成绩排名 求前任*/ public class Leftmost {public static void main(String[] args) {int[] nums {1,2,4,4,4,6,7};int target 3;/**** params* return 找到了 - 返回靠左的下标* 没找到 - 返回target的最靠左下标*/int ans BSLeftmost(nums, target);System.out.println(ans);}private static int BSLeftmost(int[] nums, int target) {int left 0, right nums.length -1;while(left right){int mid (leftright) 1;if(target nums[mid]){left mid 1;} else{right mid - 1;}}return left;} }BSRightmost /**** 求后任*/ public class Rightmost {public static void main(String[] args) {int[] nums {1,2,4,4,4,6,7};int target 3;/*** return 找到了返回下标* 没找到返回 targer的最靠右索引**/int ans BSRightmost(nums, target);System.out.println(ans);}private static int BSRightmost(int[] nums, int target) {int left 0, right nums.length-1;while(left right){int mid (left right) 1;if(target nums[mid]){left mid 1;}else {right mid - 1;}}return left - 1;} }
http://www.dnsts.com.cn/news/155423.html

相关文章:

  • 织梦文章类网站模板公司黄页是什么意思
  • 做网站图片教程如何网站做外贸生意
  • 西部数码手机网站宁波住房建设网站
  • 公司网站建设工作内容南通外贸网站推广
  • 企业网站、电子期刊属于企业文化传播载体中的( )。有什么做网站的公司
  • 网站连接微信网站做等保测评
  • 一级a做爰片免费网站 新闻南沙区做网站
  • 杨陵区住房和城乡建设局网站信阳建设企业网站公司
  • 深圳cms建站系统今天实时热搜榜排名
  • 阿里云 建设网站怎么样wordpress.org去掉
  • 网站做互动网站域名 空间申请
  • 做旅游网站的要求微信发布到wordpress
  • 网站开发与spark河南省住房和建设厅网站首页
  • 建设公司网站费用做网站数据库
  • 只有域名如何做网站廊坊网站建设案例
  • 怎样直接输入网址打开网站徐州建设工程交易平台
  • 建站用wordpress好吗微站官网
  • 关于建设企业网站的请示网站索引量怎么增加
  • 专业设计网站推荐深圳营销型网站建设费用
  • 网站建设及推广好做吗台州路桥区专业高端网站设计
  • 关于做网站ppt东莞网站制作支付通道
  • 网站图标ico 设置官方网站怎么做
  • 自己做网站挣钱不五八同城58同城找工作
  • 北京建设监理协会官方网站wordpress域名更改
  • 优质的武进网站建设网站建设 新要求
  • 山东飞鸿建设集团网站wdcp 添加网站
  • 自己做网站推广需要多少钱福建就福建省住房与城乡建设厅网站
  • 花店网站建设论文杨浦区公司网站建设
  • 传奇网站架设方法网络优化推广公司哪家好
  • 网站建设全包 广州无锡网站公司