下载资源后端资源详情
09局部最小问题.zip
大小:1.16KB
价格:35积分
下载量:0
评分:
5.0
上传者:weixin_44259230
更新日期:2024-08-20

09局部最小问题.zip

资源文件列表(大概)

文件名
大小
09局部最小问题.txt
3.51KB

资源内容介绍

局部最小问题对于一个数组,使用二分法的前提,一定是这个数组整体有序吗?答:不是。局部最小问题就是反例。
package class01;/** * 局部最小问题 * <p> * 对于一个数组,使用二分法的前提,一定是这个数组整体有序吗? * 答:不是。局部最小问题就是反例。 */public class Code07_BSAwesome { public static int getLessIndex(int[] arr) { if (arr == null || arr.length == 0) { return -1; } if (arr.length == 1 || arr[0] < arr[1]) { return 0; } if (arr[arr.length - 1] < arr[arr.length - 2]) { return arr.length - 1; } int L = 1; int R = arr.length - 2; while (L <= R) { int mid = L + ((R - L) >> 1); if (arr[mid] > arr[mid - 1]) { R = mid - 1; } else if (arr[mid] > arr[mid + 1]) { L = mid + 1; } else { return mid; } } System.out.println("==============================="); return L; } public static void main(String[] args) { int maxSize = 50; int maxValue = 30; int testTimes = 10000; boolean flag = true; for (int i = 0; i < testTimes; i++) { int[] arr1 = generateRandomArr2(maxSize, maxValue); int num = getLessIndex(arr1); if (!test(arr1, num)) { printArr(arr1); for (int index = 0; index < arr1.length; index++) { System.out.print(index + "\t"); } System.out.println(); System.out.println("num = " + num); flag = false; break; } } //至少打印一次 int[] arr1 = generateRandomArr2(maxSize, maxValue); printArr(arr1); for (int index = 0; index < arr1.length; index++) { System.out.print(index + "\t"); } System.out.println(); int num = getLessIndex(arr1); System.out.println("num = " + num); System.out.println(flag ? "nice!" : "oops!"); } public static int[] generateRandomArr(int maxSize, int maxValue) { int[] arr = new int[(int) (Math.random() * maxSize)]; for (int i = 0; i < arr.length; i++) { arr[i] = (int) (Math.random() * maxValue) - (int) (Math.random() * maxValue); } return arr; } public static void printArr(int[] arr) { for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + "\t"); } System.out.println(); } //生成的随机数组中的数字,相邻不相等。 public static int[] generateRandomArr2(int maxSize, int maxValue) { int[] arr = new int[(int) (Math.random() * maxSize) + 1]; arr[0] = (int) (Math.random() * maxValue) - (int) (Math.random() * maxValue); for (int i = 1; i < arr.length; i++) { do { arr[i] = (int) (Math.random() * maxValue) - (int) (Math.random() * maxValue); } while (arr[i] == arr[i - 1]); } return arr; } //用于测试,num位置的数,是不是局部最小。 public static boolean test(int[] arr, int num) { if (arr.length <= 1) { return true; } if (num == 0) { return arr[0] < arr[1]; } if (num == arr.length - 1) { return arr[num] < arr[num - 1]; } return (arr[num] < arr[num - 1] && arr[num] < arr[num + 1]); }}

用户评论 (0)

发表评论

captcha

相关资源

Simulink校长的某一期用的代码

根据校长学习视频敲的,因为B站视频下面评论放不了这么多字符,传这里了。一起向校长学习分为3个M文件:Link_and_Delete.mdelete_pair_blocks.mdelete_pair_bl.m持续学习,未来有你。视频网址https://www.bilibili.com/video/BV1HA411h7Zn?p=20&vd_source=bfeef05ac3fceabb6b8020f00d6d7c54

1.86KB10积分

mybatis+0809

mybatis+0809

46.38MB33积分

【浏览器插件】ImTranslator 翻译 字典 声音.zip

ImTranslator浏览器插件提供多样化的翻译服务,包括文本、单词、短语和网页翻译。它支持10种语言的朗读功能。主要应用包括:- 嵌入式翻译:快捷键Alt+C- 窗口内翻译:快捷键Alt+Z- 弹出式翻译:快捷键Alt- 网页翻译:快捷键Alt+P- 字典查询ImTranslator的功能亮点:- 支持91种语言互译- 单次翻译可达5000字符- 翻译历史记录- 网页全文翻译,含鼠标悬停翻译功能- 30种语言的文本到语音转换- 自动检测原文语言- 支持回译功能- 快捷键自定义- 支持多种翻译工具的个性化设置- 用户界面多语言本地化支持的语言包括但不限于:阿尔巴尼亚语、阿拉伯语、阿塞拜疆语、爱尔兰语、爱沙尼亚语、巴斯克语、白俄罗斯语、保加利亚语、冰岛语、波兰语、波斯尼亚语、波斯语、南非荷兰语、丹麦语、德语、俄语、法语、菲律宾语、芬兰语、高棉语、格鲁吉亚语、古吉拉特语、哈萨克语、海地克里奥尔语、韩语、豪萨语、荷兰语、加利西亚语、加泰罗尼亚语、捷克语、卡纳达语、克罗地亚语、拉丁语、拉脱维亚语、老挝语、立陶宛语、罗马尼亚语、马尔加什语、马耳他语、马拉地

2.83MB26积分

【浏览器插件】ColorZilla.zip

ColorZilla,一款广受好评的浏览器插件,以其用户友好、功能全面、安全可靠而著称。作为Chrome和Firefox开发者扩展中的佼佼者,ColorZilla全球下载量已突破1000万次。它允许用户在浏览器的任何位置获取颜色值,快速调整颜色,并将其复制到其他程序中。ColorZilla不仅具备基本的取色功能,还拥有高级颜色选择器、CSS渐变生成器、网页颜色分析器等多种实用工具。**功能亮点:**- 取色器:精准捕捉页面上任意像素的颜色。- 高级颜色选择器:提供类似Photoshop的调色体验。- 终极CSS渐变生成器:轻松创建复杂的渐变效果。- 网页颜色分析器:一键获取任何网站的配色方案。- 调色板查看器:内置7种预设调色板,方便颜色搭配。- 颜色历史:记录最近选择的颜色,方便回顾。- 多种采样大小:1x1、3x3、5x5、11x11、25x25像素,适应不同需求。- 元素信息展示:显示元素的标签名、类、ID、尺寸等信息。- 自动复制颜色:一键复制选中颜色到剪贴板。- 键盘快捷键:提高操作效率。- 色调/饱和度/值操作:直观调整颜色属性。- 动态悬停元素

410.23KB29积分