算法基础杂项

目录

1算法最优解

 2.时间复杂度排序

3.对数器 


1算法最优解

1.首先,保证时间复杂度最低

2.其次,保证空间复杂度最低

3.常数项低不低,一般没人管

 2.时间复杂度排序

 

3.对数器 

import java.util.Arrays;public class Test {public static void main(String[] args) {Boolean isSuccess = true;// 执行次数int testTimes = 500000;// 定义随机数组的长度 0~100int maxSize = 100;// 定义随机数组中元素的范围 -100 ~ 100int maxValue = 100;//step 1 生成随机数组int[] array = generateRandomArray(maxSize, maxValue);//step 2 拷贝出一份,共三份int[] copyArray1 = copyArray(array);int[] copyArray2 = copyArray(array);//step3  两份copy的数组分别用不同的算法执行,执行的结果进行比较,每次执行的每个位置的元素都能对的上,返回 success,否则,返回 failed,并打印出保存的数组for (int i = 0; i < testTimes; i++) {//    算法1insertionSort(copyArray1);//    算法2comparator(copyArray2);boolean isTrue = isSortResultEqual(copyArray1, copyArray2);if (!isTrue) {for (int j = 0; j < array.length; j++) {System.out.print(array[j] + " ");}isSuccess = false;break;}}System.out.println(isSuccess ? "success!" : "Fucking fucked!");}private static boolean isSortResultEqual(int[] copyArray1, int[] copyArray2) {if ((copyArray1 == null && copyArray2 != null) || (copyArray1 != null && copyArray2 == null)) {return false;}if (copyArray1 == null && copyArray2 == null) {return true;}if (copyArray1.length != copyArray2.length) {return false;}for (int i = 0; i < copyArray1.length; i++) {if (copyArray1[i] != copyArray2[i]) {return false;}}return true;}public static void comparator(int[] arr) {Arrays.sort(arr);}public static int[] generateRandomArray(int maxSize, int maxValue) {// Math.random() -> [0,1) 所有的小数,等概率返回一个// Math.random() * N -> [0,N) 所有小数,等概率返回一个// (int)(Math.random() * N) -> [0,N-1] 所有的整数,等概率返回一个int[] array = new int[(int) ((maxSize + 1) * Math.random())]; // 长度随机for (int i = 0; i < array.length; i++) {//两个随机数相减,可能得到随机正,负,零array[i] = (int) (Math.random() * (maxValue + 1)) - (int) (Math.random() * (maxValue + 1));}return array;}public static int[] copyArray(int[] array) {if (array == null || array.length == 0) {return null;}int[] array2 = new int[array.length];for (int i = 0; i < array.length; i++) {array2[i] = array[i];}return array2;}public static void insertionSort(int[] arr) {if (arr == null || arr.length < 2) {return;}// 不只1个数for (int i = 1; i < arr.length; i++) { // 0 ~ i 做到有序for (int j = i - 1; j >= 0 && arr[j] > arr[j + 1]; j--) {swap(arr, j, j + 1);}}}// i和j是一个位置的话,会出错public static void swap(int[] arr, int i, int j) {arr[i] = arr[i] ^ arr[j];arr[j] = arr[i] ^ arr[j];arr[i] = arr[i] ^ arr[j];}
}

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

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

相关文章

Matlab|面向低碳经济运行目标的多微网能量互联优化调度

目录 主要内容 优化流程 部分程序 结果一览 下载链接 主要内容 该程序为多微网协同优化调度模型&#xff0c;系统在保障综合效益的基础上&#xff0c;调度时优先协调微网与微网之间的能量流动&#xff0c;将与大电网的互联交互作为备用&#xff0c;降低微网与大电…

Java八股文(XXL-JOB)

Java八股文のXXL-JOB XXL-JOB XXL-JOB xxl-job 是什么&#xff1f;它的主要作用是什么&#xff1f; xxl-job 是一款分布式任务调度平台&#xff0c;用于解决分布式系统中的定时任务和异步任务调度问题。 它提供了任务的注册、调度、执行和监控等功能&#xff0c;能够帮助开发者…

JavaScript进阶:js的一些学习笔记-4

文章目录 1. 拷贝1. 浅拷贝2. 深拷贝 2. 异常处理 1. 拷贝 这里指的拷贝是指拷贝引用类型的数据(对象) 1. 浅拷贝 拷贝对象&#xff1a;Object.assign() 或者 {…obj} 展开运算符 const obj {name:liuze,age:23 } const o {...obj}; o.age 22; console.log(o); console.…

埃隆·马斯克开源Grok的“难言之隐”与“野望”

2024年3月18日&#xff0c;马斯克兑现前几天的诺言&#xff0c;正式对Grok大模型进行开源。根据开源信息显示&#xff1a;Grok模型的Transformer达到64层&#xff0c;大小为314B&#xff1b;用户可以将Grok用于商业用途&#xff08;免费&#xff09;&#xff0c;并且进行修改和…

4.1_4 文件的物理结构

文章目录 4.1_4 文件的物理结构&#xff08;一&#xff09;文件块、磁盘块&#xff08;二&#xff09;文件分配方式——连续分配&#xff08;三&#xff09;文件分配方式——链接分配&#xff08;1&#xff09;链接分配——隐式链接&#xff08;2&#xff09;链接分配——显式链…

AI+权重衰退

AI权重衰退 1权重衰退2代码实现 2丢弃法 1权重衰退 AI权重衰退是指在人工智能&#xff08;AI&#xff09;领域中的一种技术或方法&#xff0c;用于训练机器学习模型时对权重进行惩罚或调整&#xff0c;以避免过拟合现象的发生。 在机器学习中&#xff0c;过拟合是指模型在训练…

linux(Ubuntu22) 一篇带你学会Linux,详细篇

Linux 简介 精通Linux&#xff0c;自带python&#xff0c;系统开源 电脑可安装双系统 c盘安装win D盘安装linux 在一套硬件上只能同时运行一个操作系统 虚拟机 模拟真实环境 在虚拟机内运行操作系统 需要硬件支持虚拟化 开启VT-X VM…

软件工程- 第4章 结构化分析方法

4.1 基本术语 4.2 模型表示 上述场景&#xff1a;旅行社帮旅客订机票&#xff0c;交付给旅客机票和帐单。 旅行社基于旅客的订票单和航空公司的航班目录预定机票&#xff0c;确定航班准备机票&#xff0c;订票成功&#xff0c;机票数据流向客户。费用记账&#xff0c;生成记账…

【C++】三大特性之多态

1 定义及实现 1.1 概念 多态是C三大特性之一。通俗来说&#xff0c;就是多种形态&#xff0c;具体点就是去完成某个行为&#xff0c;当不同的对象去完成时会产生出不同的状态。 多态是在不同继承关系的类对象&#xff0c;去调用同一函数&#xff0c;产生了不同的行为。比如学…

mfc140u.dll丢失的解决方法,解决mfc140u.dll问题,让程序运行畅通无阻

如果你的电脑丢失了mfc140u.dll文件&#xff0c;那么可能是电脑中的mfc140u.dll文件发成了变化&#xff0c;倒是点找不到mfc140u.dll文件&#xff0c;并运行mfc140u.dll&#xff0c;那么有什么办法可以解mfc140u.dll丢失的问题呢&#xff1f;接了下来就带大脚先了解一下mfc140u…

SpringCloud Nacos Gateway 网关集成 Netty的Websocket不成功问题记录,以及解决思路记录

文章目录 前言websocket项目创建gateWay的ws协议配置说说遇到的问题过程和解决思路1. 启动getaway服务和socket服务接口调用并没有成功&#xff1b;2. 排查1002原因&#xff0c;询问chatgpt3. 百度、cv 最后排查到原因分析&#xff1a;4. 手动将netty服务注册到nacos上&#xf…

5.少儿编程51电动车防盗报警器(待优化版)

使用的模块 接线 所有模块 VCC——5V GND——GND 振动传感器 D0——P3^3 继电器 IN——P1^3 高功率喇叭 电源黑色线与喇叭黑色线相接 电源红色线与继电器COM相接 喇叭红色线与继电器NO相接 433M无线发射接收模块 D0——P1^0 D1——P1^1 代码实现 #include "reg…