对数器的作用(找bug)

冒泡排序

package class02;public class Code_Comp_BubbleSort {public static void bubbleSort(int[] arr) { // 冒泡排序错误写法if (arr.length < 2) {return;}for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr.length - 1; j++) {if (arr[j] < arr[j + 1]) {swap(arr, j + 1, j);}}}}public static void bubbleSort1(int[] arr) { // 冒泡排序正确写法if (arr.length < 2) {return;}for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr.length - 1; j++) {if (arr[j] > arr[j + 1]) {swap(arr, j + 1, j);}}}}public static void swap(int[] arr, int i, int j) { // 交换方法int tmp = arr[j];arr[j] = arr[i];arr[i] = tmp;}public static int[] lenRandomValueRandom(int maxLen, int maxValue) { // 随机长度和随机值数组的方法int len = (int) (Math.random() * maxLen); // 定义长度int[] ans = new int[len]; // 定义长度对应的数组for (int i = 0; i < len; i++) {ans[i] = (int) (Math.random() * maxValue);}return ans;}public static int[] copyArray(int[] arr) { //复制方法int[] ans = new int[arr.length];for (int i = 0; i < arr.length; i++) {ans[i] = arr[i];}return ans;}public static boolean isSorted(int[] arr) {if (arr.length < 2) {return true;}int max = arr[0];for (int i = 1; i < arr.length; i++) {if (max > arr[i]) {return false;}max = Math.max(max, arr[i]);// 更新最大值}return true;}public static void main(String[] args) {int maxLen = 10;int maxValue = 1000;int testTime = 10000;// 测的次数for (int i = 0; i < testTime; i++) {int[] arr = lenRandomValueRandom(maxLen, maxValue);int[] tmp = copyArray(arr);bubbleSort(arr);if (!isSorted(arr)) {for (int j = 0; j < tmp.length; j++) {System.out.print(tmp[j] + " ");}System.out.println();System.out.println("冒泡排序错了"); // 错误,有打印结果break;}}for (int i = 0; i < testTime; i++) {int[] arr = lenRandomValueRandom(maxLen, maxValue);int[] tmp = copyArray(arr);bubbleSort1(arr);if (!isSorted(arr)) {for (int j = 0; j < tmp.length; j++) {System.out.println(tmp[i] + " ");}System.out.println("========");System.out.println("冒泡排序错了"); // 正确,无打印结果break;}}}
}

选择排序

package class02;public class Code_Comp_SelectSort {public static void selectSort(int[] arr) { // 写选择排序方法if (arr == null || arr.length < 2) {   // 边界条件return;}int N = arr.length;for (int i = 0; i < N; i++) {int minValueIndex = i;for (int j = i + 1; j < N; j++) {if (arr[j] >= arr[minValueIndex]) { // 故意写错,后面看判断结果。 原来是<minValueIndex = j;}}swap(arr, i, minValueIndex);}}public static void selectSort1(int[] arr) { // 写选择排序方法if (arr == null || arr.length < 2) {   // 边界条件return;}int N = arr.length;for (int i = 0; i < N; i++) {int minValueIndex = i;for (int j = i + 1; j < N; j++) {if (arr[j] < arr[minValueIndex]) { // <minValueIndex = j;}}swap(arr, i, minValueIndex);}}public static void swap(int[] arr, int i, int j) {int tmp = arr[j];arr[j] = arr[i];arr[i] = tmp;}// 返回一个数组arr,arr长度在[0,maxLen-1],arr中的每个值[0,maxValue-1]public static int[] lenRandomValueRandom(int maxLen, int maxValue) { // 写个数组长度和值随机的方法int len = (int) (Math.random() * maxLen);int[] ans = new int[len]; // 长度随机解决for (int i = 0; i < len; i++) {ans[i] = (int) (Math.random() * maxValue); // 值解决}return ans;}public static int[] copyArray(int[] arr) { // 复制方法int[] ans = new int[arr.length];for (int i = 0; i < arr.length; i++) {ans[i] = arr[i];}return ans;}public static boolean isSorted(int[] arr) { // 写个验证数组是否有序的方法if (arr.length < 2) {return true;}int max = arr[0]; // 从第一个开始,设第一个变量为最大值for (int i = 1; i < arr.length; i++) {if (max > arr[i]) { // 如果之前出来的值要大于后面的值,那它是无序的return false;}max = Math.max(max, arr[i]); // 更新max}return true;}public static void main(String[] args) {int maxLen = 5;int maxValue = 1000;int testTime = 10000;// 测的次数for (int i = 0; i < testTime; i++) {int[] arr1 = lenRandomValueRandom(maxLen, maxValue); // 长度和值随机的数组 (样本大小可控制)int[] tmp = copyArray(arr1); // 克隆arr1// 有问题selectSort(arr1); // 选择排序排arr1
//             isSorted()方法判断排序有没有问题if (!isSorted(arr1)) {for (int j = 0; j < tmp.length; j++) {System.out.print(tmp[j] + " ");}System.out.println();System.out.println("选择排序错了"); //  有报错会 打印break;}// 无问题selectSort1(arr1); // 选择排序排arr1// isSorted()方法判断排序有没有问题if (!isSorted(arr1)) {for (int j = 0; j < tmp.length; j++) {System.out.print(tmp[j] + " ");}System.out.println();System.out.println("选择排序错了"); // 无任何结果,选择排序正确.break;}}System.out.println("===========");}
}

插入排序

package class02;public class Code_Comp_InsertSort {public static void insertSort(int[] arr) {// 错误写法if (arr.length < 2) {return;}for (int i = 1; i < arr.length; i++) {for (int j = i - 1; j >= 0 && arr[j] < arr[j + 1]; j--) { // 写成错误的<swap(arr, j + 1, j);}}}public static void insertSort1(int[] arr) {//正确写法if (arr.length < 2) {return;}for (int i = 1; i < arr.length; i++) {for (int j = i - 1; j >= 0 && arr[j] > arr[j + 1]; j--) {swap(arr, j + 1, j);}}}public static void swap(int[] arr, int i, int j) {int tmp = arr[j];arr[j] = arr[i];arr[i] = tmp;}public static int[] copyArray(int[] arr) {int[] ans = new int[arr.length];for (int i = 0; i < arr.length; i++) {ans[i] = arr[i];}return ans;}public static boolean isSorted(int[] arr) {if (arr.length < 2) {return true;}int max = arr[0];for (int i = 0; i < arr.length; i++) {if (max > arr[i]) {return false;}max = Math.max(max, arr[i]);}return true;}public static int[] lenRandomValueRandom(int maxLen, int maxValue) {int len = (int) (Math.random() * maxLen);int[] ans = new int[len];for (int i = 0; i < len; i++) {ans[i] = (int) (Math.random() * maxValue);}return ans;}public static void main(String[] args) {int maxLen = 10;int maxValue = 1000;int testTime = 10000; // 测的次数for (int i = 0; i < testTime; i++) {int[] arr = lenRandomValueRandom(maxLen, maxValue);int[] tmp = copyArray(arr); // 克隆insertSort(arr);if (!isSorted(arr)) {for (int j = 0; j < tmp.length; j++) {System.out.print(tmp[j] + " ");}System.out.println();System.out.println("插入排序错了");//错误报错break;}insertSort1(arr);if (!isSorted(arr)) {for (int j = 0; j < tmp.length; j++) {System.out.print(tmp[j] + " ");}System.out.println();System.out.println("插入排序错了");//正确无打印结果break;}}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/234980.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MongoDB的原子操作findAndReplace、findOneAndDelete和deleteMany

本文主要介绍MongoDB的原子操作findAndReplace、findOneAndDelete和deleteMany。 目录 MongoDB的原子操作一、findAndReplace二、findOneAndDelete三、deleteMany MongoDB的原子操作 MongoDB的原子操作指的是在单个操作中对数据库的数据进行读取和修改&#xff0c;并确保操作是…

ALVR 编译 windows android [Streamer Client]

ALVR下载源码地址&#xff1a;ALVR download 1 ALVR windows编译 [Streamer Building] 1.1 环境安装 参照官方文档&#xff1a;https://github.com/alvr-org/ALVR/wiki/Building-From-Source&#xff0c; 1 rust环境安装&#xff1a; 下载并安装https://static.rust-lang.…

selenium css定位

selenium-css定位 element_css driver.find_element(By.CSS_SELECTOR, css表达式)css定位说明 selenium中的css定位&#xff0c;实际是通过css选择器来定位到具体元素&#xff0c;css选择器来自于css语法 css定位优点 语法简洁对比其他定位方式&#xff0c;定位效率更快对…

高防服务器防御靠谱吗?

​  随着互联网的普及和信息技术的不断发展&#xff0c;网络安全问题日益突出。高防服务器作为一种专业的网络安全设备&#xff0c;在防御网络攻击方面扮演着越来越重要的角色。然而&#xff0c;高防服务器是否靠谱&#xff0c;是否能够有效地防御各种网络攻击&#xff0c;一…

CUMT--Java--JDBC编程

目录 一、JDBC简介 二、数据库访问 1、加载数据库驱动 2、建立数据连接 3、创建Statement对象 4、执行SQL语句 5、访问结果集 三、MetaData接口 1、DatabaseMetaData接口 2、ResultSetMetaData接口 四、事务 1、JDBC中的事务 2、保存点 3、批量更新 一、JDBC简…

【JAVA】重力反弹,反弹高次一次比一次低

本来是想实现泡泡屏保(javascript实现漂亮的气泡碰撞效果(Chrome浏览器下更佳) 下载-脚本之家)的&#xff0c;还未实现 import javax.swing.*; import java.awt.*; import java.util.LinkedList; import java.util.Random;class Bubble {public static Image image;public int…

轮滑加盟培训机构管理系统源码开发方案

一、项目背景与目标 &#xff08;一&#xff09;项目背景 随着轮滑运动的普及和市场需求的增加&#xff0c;轮滑加盟培训机构逐渐兴起。这些机构面临着学员管理、课程排班、教师管理等多方面的挑战。为了提高管理效率和服务质量&#xff0c;需要开发一套专门针对轮滑加盟培训…

FormData文件上传多文件上传

一、简介 ​ 通常情况下&#xff0c;前端在使用post请求提交数据的时候&#xff0c;请求都是采用application/json 或 application/x-www-form-urlencoded编码类型&#xff0c;分别是借助JSON字符串来传递参数或者keyvalue格式字符串&#xff08;多参数通过&进行连接&#…

大数据分析22、23真题回忆

2022 学长描述 1. 一个很简单的据估计 2. 算一个决策树 3. Cypher图 4.Hadoop和Spark的区别 2023 真题回忆 1. 大数据分析的定义 说出大数据分析三个层次 2.大数据分析流程 预处理部分包含哪几个步骤 3.Spark核心部件和应用库有哪些 并简要说明功能 4. 主成分分析和因…

HTML5+CSS3小实例:纯CSS实现锚点平滑过渡

实例:纯CSS实现锚点平滑过渡 技术栈:HTML+CSS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"&…

【无语】Microsoft Edge 浏览器不显示后台返回的数值数据

Microsoft Edge 禁用 JSON 视图 写在前面禁用 JSON 视图 写在前面 遇到一个有意思的事情&#xff0c;在用 Microsoft Edge 浏览器发送请求测试时发现&#xff0c;后端返回的数值数据没有正常展示&#xff0c;而是类似查看源码的结果&#xff0c;只显示了一个行号1&#xff0c;…

最优化理论复习--对偶单纯形方法及灵敏度分析

对偶单纯形方法 定义&#xff1a;设 x ( 0 ) x^{(0)} x(0) 是(L)问题的基本解&#xff08;不一定是可行解&#xff08;极点&#xff09;&#xff09;&#xff0c;如果它的对偶问题的解释可行的&#xff0c;则称 x ( 0 ) x^{(0)} x(0) 为原问题的对偶可行基本解 从而衍生出结…

《哥德尔证明》阅读笔记——初等命题逻辑的一致性证明过程

前言 前两节主要阐述了公理系统的发展历史&#xff0c;一致性问题的提出&#xff0c;以及希尔伯特的洞见&#xff0c;本节将给出哥德尔证明所需的最后一次具体背景阐述&#xff0c;包含两个问题&#xff1a;一是罗素所著的《数学原理》是为何而写&#xff1f;二是从数学原理中…

【算法面经】九维数据CV算法工程师一面

来源&#xff1a;投稿 作者&#xff1a;LSC 编辑&#xff1a;学姐 1.详细聊项目 2.模型的常见优化方法 (1)更换模型backbone等结构 (2)数据准确 (3)平衡数据解决样本不均衡 (4)模型集成等 (5)根据loss下降的趋势调整参数 3.介绍一下Transformer的结构&#xff0c;推导一…

Chappyz 生态迎重磅利好:多链应用程序启动、100% 收入共享计划开启

“首款由人工智能驱动的社区建设工具 Chappyz&#xff0c;即将在 12 月 21 日推出全新的多链平台并向社区开放&#xff0c;同时制定了生态收入 100% 向 Stakers 共享的计划&#xff0c;这不仅是 Chappyz 生态的一个全新进展&#xff0c;也是 Chappyz 生态发展的重磅利好。” 构…

0137 - 跳转控制语句 break、continue、return

文章目录 1 break1.1 基本介绍1.2 基本语法1.3 注意事项和细节说明 2 continue2.1 基本介绍2.2 基本语法 3 return 1 break 1.1 基本介绍 break 语句用于终止某个语句块的执行&#xff0c;一般使用在 switch 或者循环[for , while , do-while]中 1.2 基本语法 { ……break…

新时代体育场馆的未来之路——气膜体育馆

近年来&#xff0c;我国正全面贯彻实施全民健身国家战略&#xff0c;秉持“发展群众体育&#xff0c;服务健康中国”的理念&#xff0c;深入推动群众参与的体育活动&#xff0c;努力实现全民健身与全民健康的深度融合发展。在这一大潮中&#xff0c;体育场馆建设成为业内的一项…

tensorflow入门

一、怎样入手TensorFlow TensorFlow是一个用于机器学习和深度学习的开源框架&#xff0c;它提供了一种灵活的方式来构建和训练神经网络模型。以下是一些TensorFlow框架入门的建议&#xff1a; 学习Python语言&#xff1a;TensorFlow主要使用Python语言进行开发&#xff0c;因此…

欧美电商平台Depop如何入驻?

对标美国二手闲鱼平台Mercia,PoshMark、东南亚Etsy&#xff0c;Depop是英国的一个面向创意人群的二手时尚市场&#xff0c;类似于Instagram&#xff0c;但更专注于买卖二手服装、配饰和艺术品。 有研究显示,由于购物预算减少,高达65%的受访者表示乐意在圣诞节购买或收到二手礼…

JDK bug:ciObjectFactory::create_new_metadata:原因完全解析

文章目录 1、问题2.详细日志2.关键日志3.结论4.JDK&#xff1a;bug最终bug链接&#xff1a; 京东遇到过类似bug各位大佬如果有更详细的解答可以留言。 1、问题 服务不通&#xff0c;接口404&#xff0c;查看日志有一下截图&#xff0c;还有一个更详细的日志 2.详细日志 # #…