数组相关简单算法
目录
1. 数据结构与算法
2. 数组中涉及的算法
2.1
2.2 数值型数组相关运算
2.3 数组赋值
2.4 数组复制/反转
2.5 数组查找
2.6 排序
1. 数据结构与算法
《数据结构与算法》是大学些许专业的必修或选修课,主要包含两方面知识:
(1)数据与数据之间的逻辑关系:
集合,一对一,一对多,多对多;
(2)数据的存储结构:
集合结构:

线性结构:顺序表,链,栈,队列;

树形结构:二叉树

图状结构:

2. 数组中涉及的算法
(1)数组元素的赋值(杨辉三角,回形数等);
(2)求数值型数组的最大值,最小值,和以及平均数;
(3)数组的复制,反转,查找(线性查找,二分法查找);
(4)数组元素的排序算法;
算法的五大特性:

2.1
创建一个长度为 6 的 int 型数组,要求取值为 1-30,同时元素各不相同;

2.2 数值型数组相关运算
定义一个 int 型的一维数组,包含 10 个元素,分别赋一个两位数的随机整数,求出所有元素的最大值,最小值,和以及平均值;
class suanShu {public static void main(String[] args) {int [] a = new int [10];for(int i = 0;i < a.length;i++){a[i] = (int)(Math.random()*100);System.out.print(a[i]+" ");if(i==a.length-1){System.out.println(" ");}}int max = a[0] ;int min = a[0];int sum = 0;for(int i = 0;i < a.length;i++){if(max < a[i]){max = a[i];}if(min > a[i]){min = a[i];}sum += a[i];}System.out.println("最大值为:"+max);System.out.println("最小值为:"+min);System.out.println("和值为:"+sum);System.out.println("平均值为:"+(sum / a.length));}
}
2.3 数组赋值

class ArrayExer2 {public static void main(String[] args){int array1[],array2[];//优化array1 = new int[]{2,3,5,7,11,13,17,19};for(int i = 0;i < array1.length;i++){System.out.print(array1[i]+" ");if(i==array1.length-1){System.out.println(" ");}}array2 = array1;for(int i = 0;i < array2.length;i++){if(i % 2 == 0){array2[i] = i;}}for (int i = 0;i < array1.length;i++){System.out.print(array1[i]+" ");}}
}
注意:array1 与 array2 的地址值相同,都指向堆内存中的同一数组;
2.4 数组复制/反转
//数组的复制/反转
class complex {public static void main(String[] args){String[] str = new String[]{"11","22","33","44","55","66","77"};String[] str1;str1 = new String[str.length];//堆中新开辟空间/*区别于数组的赋值int array1[],array2[];array1 = new int[]{2,3,5,7,11,13,17,19};array2 = array1;*/for(int i = 0;i < str.length;i++){str1[i] = str[i];System.out.print(str1[i]+" ");if(i == str.length-1){System.out.println(" ");}}// 数组反转for (int i = 0;i < str1.length / 2;i++){String temp ;temp = str1[i];str1[i] = str1[str.length-i-1];str1[str.length-i-1] = temp;}for(int i=0;i < str1.length;i++){System.out.print(str1[i]+" ");}}
}
2.5 数组查找
(1) 线性查找;
//数组线性查找
class Select{public static void main(String[] args){String[] arr = new String[]{"1","3","5","7","9","11","13","15","17","19"};String dest = "19";boolean isFlag = true;for (int i = 0;i < arr.length;i++){if(dest.equals(arr[i])){System.out.println("索引为:"+i);isFlag = false;break;}}if(isFlag){System.out.println("很遗憾,没有查找到该数据");}}
}
(2)二分法查找;
前提:排序;
适用于大量数据
如下:在整型一维数组 a 中查找 b 的位置;
class devideS{public static void main(String[] args){int[] a = new int[]{1,3,5,7,9,11,13,15,17,19,22};int b = 17;int head = 0;int end = a.length-1;boolean isfact = true;while(head <= end){int middle = (head + end) / 2;if(a[middle] == b){System.out.println("该元素地址为:" + middle);isfact = false;break;}else if(a[middle] < b){head = middle + 1;}else if(a[middle] > b){end = middle - 1;}}if(isfact){System.out.println("很抱歉,没有找到的啦!");}}
} 2.6 排序
1. 内部排序:在内存中完成的排序算法(10种)
选择排序:直接选择排序,堆排序
交换排序:冒泡排序,快速排序
插入排序:直接插入排序,折半插入排序,Shell排序
归并排序;
桶式排序;
基数排序;
2. 外部排序:借助外部存储设备完成的排序
冒泡排序(平均时间复杂度:O(n2)):
class MP{
// 5 30 15 2
// 第一轮: 5 15 2 30 交换三次
// 第二轮: 5 2 15 30 交换二次
// 第三轮: 2 5 15 30 交换一次 排序完毕public static void main(String[] args){int[] a = new int[]{1,5,14,9,2};
// n个数(n-1)轮即可排完for(int i = 0;i < a.length - 1;i++){
// 每轮都会沉底一个较大数,交换次数会减少for(int j = 0;j < a.length - 1 - i;j++){int temp = 0;if(a[j] < a[j+1]){temp = a[j];a[j] = a[j+1];a[j+1] = temp;}}}for(int i = 0;i < a.length;i++){System.out.print(a[i] + " ");}}
} 快速排序,归排序,堆排序用前突击即可,想要做到和以上算法一样熟悉,需要经过一定的练习,因此本文暂时并不提供这三种算法的相关知识。
相关文章:
数组相关简单算法
目录 1. 数据结构与算法 2. 数组中涉及的算法 2.1 2.2 数值型数组相关运算 2.3 数组赋值 2.4 数组复制/反转 2.5 数组查找 2.6 排序 1. 数据结构与算法 《数据结构与算法》是大学些许专业的必修或选修课,主要包含两方面知识: (1&#…...
在VBA中结合正则表达式和查找功能给文档添加交叉连接
在VBA中搜索文本有两种方式可用,一种是利用Range.Find对象(更常见的形式可能是Selection.Find,Selection是Range的子类,Selection.Find其实就是特殊的Range.Find),另一种方法是利用正则表达式,但…...
动手学深度学习-多层感知机-7前向传播、反向传播和计算图
目录 前向传播 前向传播计算图 反向传播 训练神经网络 小结 我们已经学习了如何用小批量随机梯度下降训练模型。 然而当实现该算法时,我们只考虑了通过前向传播(forward propagation)所涉及的计算。 在计算梯度时,我们只调用…...
【Python】基于Python的CI/CD工具链:实现自动化构建与发布
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 在现代软件开发中,持续集成(CI)和持续交付(CD)已经成为提高开发效率和软件质量的重要实践。CI/CD流程帮助开发团队自动化构建、测试、…...
FPGA-PS端编程1:
目标 在小梅哥的zynq 7015上,完成以下目标: 读取 S1 按键的电平, 当 S1 按键为按下状态时,驱动 PS LED 以 1S 的频率闪烁(注意理解 1S 的频率闪烁和 1S的时间翻转两种描述之间的差别), 当 S1 释放后,停止…...
自制数据库迁移工具-C版-06-HappySunshineV1.5-(支持南大Gbase8a、PostgreSQL、达梦DM)
目录 一、环境信息 二、简述 三、架构图 四、升级点 五、支持功能 六、后续计划支持功能 七、安装包下载地址 八、配置参数介绍 九、安装步骤 1、用户创建 2、安装包解压 3、环境变量配置 4、环境变量生效 5、动态库链接检验 (1)HsManage…...
了解RPC
本文来自智谱清言 --------- RPC(Remote Procedure Call,远程过程调用)是一种允许程序调用位于远程计算机上的子程序或服务的技术。这种技术使得构建分布式计算变得更加容易,因为它提供了强大的远程调用能力,同时保持…...
centos7 安装docker
文章目录 介绍docker特点安装1.前提准备2.下载1.移除旧版docker命令2.切换centos7的镜像源3.配置docker yum源4.安装最新docker5.输入命令验证docker 安装是否成功6.配置docker 镜像加速7.设置为开机自启 总结 介绍 Docker是一种开源的容器化平台,旨在简化应用…...
Docker 入门:如何使用 Docker 容器化 AI 项目(一)
引言 在人工智能(AI)项目的开发和部署过程中,环境配置和依赖管理往往是开发者遇到的挑战之一。开发者通常需要在不同的机器上运行同样的代码,确保每个人使用的环境一致,才能避免 “在我的机器上可以运行”的尴尬问题。…...
LLMs之rStar:《Mutual Reasoning Makes Smaller LLMs Stronger Problem-Solvers》翻译与解读
LLMs之rStar:《Mutual Reasoning Makes Smaller LLMs Stronger Problem-Solvers》翻译与解读 导读:这篇论文提出了一种名为rStar的自我博弈互推理方法,用于增强小型语言模型 (SLMs) 的推理能力,无需微调或依赖更强大的模型。rStar…...
【RK3588 Linux 5.x 内核编程】-内核中断与ThreadedIRQ
内核中断与ThreadedIRQ 文章目录 内核中断与ThreadedIRQ1、Threaded IRQ介绍2、Threaded IRQ相关API3、驱动实现4、驱动验证当 Interrupt 触发时,Interrupt handler 应该执行得非常快,它不应该运行更多的时间(它不应该执行耗时的任务)。 如果我们有执行更多任务的中断处理程…...
Message Processing With Spring Integration高级应用:自定义消息通道与端点
一、Spring Integration 简介 Spring Integration 是 Spring 框架的扩展,支持企业集成模式(EIP),提供轻量级的消息处理功能,帮助开发者构建可维护、可测试的企业集成解决方案。 核心目标: 提供简单的模型…...
S32K324 MCAL中的Postbuild和PreCompile使用
文章目录 前言Postbuild和PreCompile的概念MCAL中配置差异总结 前言 之前一直看到MCAL配置中有这个Postbuild和PreCompile的配置,但是不太清楚这两个的区别和使用方法。最近在使用中出现了相关问题,本文介绍一下MCAL中这两种配置的区别和使用。 Postbu…...
kubeadm_k8s_v1.31高可用部署教程
kubeadm_k8s_v1.31高可用部署教程 实验环境部署拓扑图**部署署架构****Load Balance****Control plane node****Worker node****资源分配(8台虚拟机)**集群列表 前置准备关闭swap开启ipv4转发更多设置 1、Verify the MAC address and product_uuid are u…...
【AI日记】24.12.22 容忍与自由 | 环境因素和个人因素
【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】 工作 内容:看 OpenAi 这周的发布会和其他 AI 新闻,大佬视频时间:3 小时 读书 书名:富兰克林自传时间:1 小时评估:读完,总体…...
【Java基础面试题030】Java和Go的区别?
回答重点 可以从语言的设计理念、并发模型、内存管理、生态系统与应用场景来说: 1)语言设计理念: Java:Java是一种面向对象编程语言,强调继承、多态和封装等OOP特性。它运行在Java虚拟机(JVM)…...
学习嵩山版《Java 开发手册》:编程规约 - 常量定义(P5)
概述 《Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结,他旨在提升开发效率和代码质量 《Java 开发手册》是一本极具价值的 Java 开发规范指南,对于提升开发者的综合素质和代码质量具有重要意义 学习《Java 开发手册》是一个提升 Jav…...
洛谷 P1595 信封问题 C语言递归
题目描述 某人写了 n 封信和 n 个信封,如果所有的信都装错了信封。求所有信都装错信封共有多少种不同情况。 输入格式 一个信封数 n,保证 n≤20。 输出格式 一个整数,代表有多少种情况。 输入输出样例 输入 #1 2 输出 #1 1 输入 #2 …...
QT创建一个模板槽和信号刷新UI
文章目录 信号与槽的声明work.cpp 信号与槽的连接 在Qt中,若您想设计一个仅含一个信号和槽函数框架,用以刷新UI上多个类型相同但可能属性各异的控件,我们可以借助QVariant的灵活性来传递不同种类的数据,同时利用控件的名称或某种标…...
【计算机视觉基础CV-图像分类】01- 从历史源头到深度时代:一文读懂计算机视觉的进化脉络、核心任务与产业蓝图
1.计算机视觉定义 计算机视觉(Computer Vision)是一个多学科交叉的研究领域,它的核心目标是使计算机能够像人类一样“看”并“理解”视觉信息。换句话说,它希望赋予计算机从图像、视频中自动提取、有意义地分析、理解并解释视觉场…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...
C++ 设计模式 《小明的奶茶加料风波》
👨🎓 模式名称:装饰器模式(Decorator Pattern) 👦 小明最近上线了校园奶茶配送功能,业务火爆,大家都在加料: 有的同学要加波霸 🟤,有的要加椰果…...
android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...
