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

手机网站 像素创作网

手机网站 像素,创作网,设计一个个人网站的基本步骤,电子邮箱怎么申请概述 二分查找算法的应用#xff0c;包括有序和无序数据#xff0c;有序数组默认按从小到大排序 在有序数组中找到num /*** 4 二分查找 在有序数组中找到num* 思路#xff1a;找中值#xff0c;然后中值元素和目标值比较。如果中值元素比目标值大#xff0c;则继续在左…概述 二分查找算法的应用包括有序和无序数据有序数组默认按从小到大排序 在有序数组中找到num /*** 4 二分查找 在有序数组中找到num* 思路找中值然后中值元素和目标值比较。如果中值元素比目标值大则继续在左半区域查找。反之右半区。重复该过程直至找到目标值* param arr 数组* param num 目标值* return 返回目标值的索引*/public static int binarySearch(int[] arr, int num){// 边界条件if(arr null){return -1;}int l 0;int r arr.length-1;while(l r){int mid l (r-l)/2;if(arr[mid] num){return mid;} else if (arr[mid] num) {// 去左半区找r mid - 1;} else{// 去右半区找l mid 1;}}return -1;}在有序数组中找到最左边num的元素位置 /*** 5 二分查找在有序数组中找到num最左的位置* 思路在原来的二分查找基础上找到处于最左位置的target。* 每次二分找到目标值时用临时变量记录此时的索引。再查找左半区是否还有target如果有则更新临时变量。* param arr 数组* param num 目标值* return 最左位置的索引*/public static int binarySearch2(int[] arr, int num){// 边界条件if(arr null){return -1;}int l 0;int r arr.length-1;int ans -1;while(l r){int mid l (r-l)/2;if(arr[mid] num){ans mid;r mid-1;}else{l mid1;}}return ans;}在有序数组中找到最右边num的元素位置 /*** 6 二分查找在有序数组中找到num的最右边的位置* 思路二分得到中值如果中值元素目标值则检查中值的右边是否还有满足目标值的元素。反之查中值的左边。* param arr 数组* param num 目标值* return 目标值的索引*/public static int binarySearch3(int[] arr, int num){// 边界条件if(arr null || arr.length 1){return -1;}int l 0;int r arr.length-1;int ans -1;while(l r){int mid l (r-l)/2;if(arr[mid] num){ans mid;l mid 1;}else{r mid - 1;}}return ans;}logn时间复杂度的无序数组寻找局部最值 /*** 寻找峰值a hrefhttps://leetcode.cn/problems/find-peak-element/description/.../a* 在无序相邻元素不相等的列表中返回任一局部最小值* 思路通过二分降低时间复杂度提升效率。找到中值后判断中值元素临近的mid-1、mid1的关系。* 最值要么出现在数组两端要么出现在中间。* 在无序数组中找到中值后如果arr[mid-1] arr[mid] arr[mid1]那么在0-mid之间一定存在一个最小值。* 所以剩下就是二分找到这个最小值。* author Kenyi*/ public class LocalMinValue {public static void main(String[] args) {int length 9;int maxValue 10;int testCycle 100000;for (int i 0; i testCycle; i) {int[] arr randomArray(length, maxValue);int minIndex binarySearchValleyElement(arr);if(!check(arr, minIndex)){System.out.println(出错了);System.out.println(minIndex: minIndex);printArr(arr);}}}/*** 8 二分查找局部最小值算法* param arr 数组* return 目标值索引*/public static int binarySearchValleyElement(int[] arr){// 边界条件if(arr null ){return -1;}int length arr.length;if(length 0){return -1;}if(length 1){return 0;}if(arr[0] arr[1]){return 0;}if(arr[length -1] arr[length -2]){return length -1;}int left 0;int right length -1;while(left right){int mid left (right - left)/2;if(arr[mid-1] arr[mid]){right mid-1;} else if (arr[mid] arr[mid1]) {left mid1;}else{return mid;}}return -1;}/*** 返回数组任一的局部最大值* param arr 数组* return 局部最大值的索引*/public static int findPeakElement(int[] arr) {int n arr.length;if (arr.length 1) {return 0;}if (arr[0] arr[1]) {return 0;}if (arr[n - 1] arr[n - 2]) {return n - 1;}int l 1, r n - 2, m 0, ans -1;while (l r) {m (l r) / 2;if (arr[m - 1] arr[m]) {r m - 1;} else if (arr[m] arr[m 1]) {l m 1;} else {ans m;break;}}return ans;}/*** 生成随机数组* param length 数组长度* param maxValue 元素最大值* return 生成的数组*/public static int[] randomArray(int length, int maxValue){// 边界条件int[] arr new int[length];if(length 0){return arr;}arr[0] (int)(Math.random() * maxValue);if(length 1){return arr;}// 相邻元素互不相等for (int i 1; i length; i) {do{arr[i] (int)(Math.random() * maxValue);}while (arr[i] arr[i-1]);}return arr;}/*** 检查是否是局部最小值* param arr 数组* param index 索引* return 布尔值*/public static boolean check(int[] arr, int index){if(arr null || arr.length 0){return index -1;}if(index -1){for (int i 1; i arr.length-1; i) {if(arr[i-1] arr[i] arr[i] arr[i1]){return false;}}return true;}int left index-1;int right index1;boolean leftOk left 0 || arr[left] arr[index];boolean rightOk right arr.length - 1 || arr[index] arr[index 1];return leftOk rightOk;}/*** 打印数组* param arr 数组*/public static void printArr(int[] arr){System.out.println(Arrays.toString(arr));}
http://www.zqtcl.cn/news/852288/

相关文章:

  • 做网站工资高吗精品资料
  • 做农业需关注什么网站热门代理项目
  • 网站开发公司营业范围照片制作视频软件app
  • 做网站怎么qq邮箱验证免费拥有wordpress
  • 校园网站建设资金来源有wordpress权重
  • 魔站网站开发wordpress 3.3.1
  • 东莞个人免费建网站网站后台管理系统 asp
  • 呼和浩特网站制作 建设wordpress怎么改中文
  • 银医网站建设方案公司网站模板免费下载
  • 优秀网站设计案例中国网站建设东莞公司
  • 自己的公网ip可以做网站网页设计与制作课程思政建设内容
  • 静态网站 搜索搭建织梦网站教程
  • idc 网站备案手机电脑网站建设短视频
  • 做搜狗pc网站优化快速亚马逊云搭建WordPress
  • 免费的建网站软件2020做seo还有出路吗
  • 宁波三优互动网站建设公司怎么样网站建设公司管理流程图
  • 网站内文章外链如何做创新设计
  • 西安做网站公网站做友链有行业要求吗
  • 做现金贷网站的公司软件开发设计文档
  • 数据做图网站表示商业网站的域名
  • 网站备案单位备案老域名
  • 黔西南州建设局网站网站建设流程的过程
  • 河南龙王建设集团网站沈阳专业建站
  • 百度网盘app下载安装手机版百度排名优化咨询电话
  • 网站微信公众号链接怎么做免费访问国外网站的应用
  • 东莞网站搜索排名wordpress 小工具居中
  • 网上商城网站源码网站建站中关键字搜索怎么弄
  • 房地产开发公司网站源代码 墨绿色风格河北省建设项目环保备案网站
  • 有没有做机械加工的网站企业网站建站企业
  • 网站自创重庆宣传片制作