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

汕头网站推广制作怎么做网站开发模块

汕头网站推广制作怎么做,网站开发模块,网页设计与制作教程读书心得,seo百度排名优化二分查找 查找一个数组里面是否存在num主要代码运行结果 详细写法自动生成数组和num,利用对数器查看二分代码是否正确 查找一个数组里面是否存在num 主要代码 /*** Author: ggdpzhk* CreateTime: 2024-07-27*/ public class cg {//二分查找public static boolean …

二分查找

  • 查找一个数组里面是否存在num
  • 主要代码
    • 运行结果
  • 详细写法
    • 自动生成数组和num,利用对数器查看二分代码是否正确

查找一个数组里面是否存在num

主要代码

/*** @Author: ggdpzhk* @CreateTime: 2024-07-27*/
public class cg {//二分查找public static boolean exist(int[] arr,int num){if(arr == null || arr.length == 0){return false;}int l = 0;int r = arr.length -1;while(l <= r){int m = l + ((r-l)>>2);if(num == arr[m]){return true;}else if (arr[m] < num){l = m + 1;}else{r = m - 1;}}return true;}public static void main(String[] args) {int[] arr = {1,2,3,4,5,6,7,8,9};int num = 10;if(exist(arr,num)){System.out.println("数组中存在"+num);}else{System.out.println("数组中不存在"+num);}}
}

运行结果

在这里插入图片描述

详细写法

自动生成数组和num,利用对数器查看二分代码是否正确

import java.util.Arrays;/*** @Author: ggdpzhk* @CreateTime: 2024-07-23*/
public class _006 {//二分查找//保证数组有序才能用二分查找,不然无意义public static boolean exist(int[] arr,int num){if(arr == null || arr.length == 0){return false;}//最开始左右边界的搜索范围int l = 0;int r = arr.length-1;int m ;//表示中点坐标的变量while(l <= r){/*m = (l+r)/2;m = l + (r-l)/2;m = l + ((r-l) >> 1);上述两种写法都可以,但是第二种更好。第三行等同于第二行    右移一位就等于除以2防止溢出就是l+r可能会溢出(数字很大),在除以2 就会出问题但是先求差,加数较小*/m = l + (r-l)/2;if(arr[m] == num){return true;}else if(arr[m] > num){/*num:我们要找的数字中间值大于num,说明num如果存在,必在 中间值的左边所以查询范围修改左边 arr[0]   右边到 中间值的前一个,也就是arr[m-1]*/r = m - 1;}else {l = m + 1;}}//每次这种我都不知道 什么条件应该返回true或者false。//但是满足上面的情况我们就返回true,剩下的不管会出现什么情况 我们都返回false//这里面有程序员的思路,多练习,加油return false;}//为了验证//对数器//为了保证你上面的方法是正确的public static boolean right(int[] arr,int num){/*if(arr == null || arr.length == 0){return false;长度检查是无用的,不可能为null或者长度为0这些限制条件在 自己写的方法随机生成数组中已经考虑到了}*///暴力解//从数组第一个数字开始,一个一个对比,如果一样就返回true。后面代码不再执行//如果查找完整个数组都没有找到num,就返回truefor(int i : arr){if(i == num ){return true;}}return false;}//为了验证//方法:循环 随机生成数字放入数组元素public static int[] randomArray(int n,int V){//写一个循环 随机生成数字放入数组元素int[] arr = new int[n];for(int i = 0;i < arr.length;i++){arr[i] = (int)(Math.random()*V)+1; //1~V}return arr;}//为了验证//随机生成满足的数组,用于测试用例public static void main(String[] args) {//   这里都是对数器的测试,如果测试通过,那我们应该写具体的输出语句,显示测试的数组和 num,以便更好地理解测试过程。/*int N = 5;//数组元素个数int V = 100;//数组最大值int testTimes = 20;//测试次数System.out.println("测试开始");for(int i = 0;i < testTimes;i++) {int n = (int) (Math.random() * N + 1);//1~N//调用方法 生成测试数组用例int[] arr = randomArray(n, V);Arrays.sort(arr);//Arrays包自带的方法,将数组从小到大排序。// 或者你用冒泡选择插入排序三种自己写的方法都行,但是人家有自带的方法为什么不用int num = (int) (Math.random() * V);// [0,V)--------选定num,看数组里有没有这个数// 这里的N写啥都行吧,就是随机生成一个数,目前对num没有条件限制//有了num,有了数组,接下来是不是就直接调方法,查找数组中有没有numif (exist(arr, num) != right(arr, num)) {System.out.println("出错了");}}System.out.println("测试结束");*/int n = 10;//几个元素int v = 20;//元素范围int[] arr = randomArray(n,v);System.out.println("数组是:"+Arrays.toString(arr));int num = (int)(Math.random()*20)+1;//随机数字System.out.println("数字是"+num);//我要的是明显的结果if(exist(arr,num) == true){System.out.println("数组中存在"+num);}else{System.out.println("数组中不存在"+num);}}
}

在这里插入图片描述
在这里插入图片描述

http://www.yayakq.cn/news/914550/

相关文章:

  • 网站建设可行性报告范文邢台企业网站制作建设
  • 昆明参差网站做金融的喜欢逛哪些网站
  • 电子商务网站建设与维护论文太原网站推广公司
  • 辽宁省网站制作深圳网站开发专业团队
  • 网站给他人做付刑事责任wordpress全站关闭评论
  • 虚拟机做网站常熟网站制作哪家好
  • 企业网站建设需要哪些设备wordpress foot增加js
  • 邯郸网页运营百度怎么优化网站排名
  • 网站如何做线上支付功能网络营销的职能是什么?
  • 软装设计图片成都自然排名优化
  • 上海网站建设找思创网络网站设计 优帮云
  • 企业简介的网站怎么做班级优化大师下载安装app
  • 国内著名网站建设公司申请做网站 论坛版主
  • 自助服务系统网站小程序api是什么意思
  • 制作网站分析商业模式seo联盟平台
  • 微商城网站建设价位如何进行营销型企业网站的优化
  • 礼品回收网站建设条件查询 php网站源码
  • 做企业网站用哪个软件程序开源网站
  • 淮安做网站卓越凯欣我的世界皮肤做壁纸的网站
  • 用jsp做学校网站app开发小程序
  • 怎么阐述自己做的网站果洛wap网站建设哪家好
  • 网站推广建设石碣网站建设
  • 怎样在手机上制作网站百度手机助手app官方下载
  • 网站建设相关合同内容网站建设如何包含数据库
  • 羽毛球赛事重播网站搜索优化排名
  • 精美大气的餐饮类企业网站栾城住房和城乡建设局网站
  • 新乡网站建设哪家正规成都装修公司加盟
  • .net网站内容管理系统网站建设需要匹配人员
  • 门户网站制作万网域名注册官网查询入口
  • 衡阳县建设局网站网站开发前后端分工