shell脚本5数组

news2024/11/26 19:50:05

文章目录

  • 数组
    • 1 数组定义方法
    • 2 获取数组长度
      • 2.1 读取数组值
      • 2.2 数组切片
      • 2.3 数组替换
      • 2.4 数组删除
      • 2.5 追加数组元素
    • 3 实验
      • 3.1 冒泡法
      • 3.2 直接选择法
      • 3.3 反排序法

数组

1 数组定义方法

  • 数组名=(value0 valuel value2 …)

  • 数组名=( [0]=value [1]=value [2]=value …)

  • 列表名=“value0 valuel value2 …”

    • 数组名=($列表名)
  • 数组名[0]=“value”

    数组名[1]=“value”

    数组名[2]=“value”

2 获取数组长度

2.1 读取数组值

读取整个数组的值:${数组名[*]}

获取数组中其中一个元素的值:${数组名[索引号]}

2.2 数组切片

取数组中的某一段的元素的值

基本格式

${数组名[@或*]}:起始位置(起始索引):长度

echo ${arr1[*]:0:2} #这里是从0索引开始获得往后两位元素的值

echo ${arr1[*]:2:2} #获取从索引2开始往后获取两位元素的值

2.3 数组替换

  • 临时替换

$(数组名[@或*]/查找字符/替换字符}

eg:${数组名[*]/4/77}

  • 永久替换

数组名=($数组名[@或*]/查找字符/替换字符}

eg:数组名=($数组名[*]/4/77)

2.4 数组删除

删除整个数组:unset 数组名

删除指定元素:unset 数组名[索引号]

2.5 追加数组元素

数组名+=(要添加的元素)直接往后追加

3 实验

3.1 冒泡法

基本思想是对比相邻的两个元素值

  • 如果满足条件就交换元素值,把较小的元素移动到数组前面

把大的元素移动到数组后面(也就是交换两个元素的位置)

  • 这样较小的元素就像气泡一样从底部上升到顶部

算法思路

冒泡算法由双层循环实现,其中外部循环用于控制排序轮数

一般为要排序的数组长度减1次,因为最后一次循环只剩下一个数组元素,不需要对比

同时数组已经完成排序了。而内部循环主要用于对比数组中每个相邻元素的大小

以确定是否交换位置,对比和交换次数随排序轮数而减少
在这里插入图片描述

3.2 直接选择法

与冒泡排序相比,直接选择排序的交换次数更少,所以速度会快些

基本思想

将指定排序位置与其它数组元素分别对比,

如果满足条件就交换元素值,注意这里区别冒泡排序,

不是交换相邻元素,而是把满足条件的元素与指定的排序位置交换
在这里插入图片描述

这样排序好的位置逐渐扩大,最后整个数组都成为已排序好的格式
反序排序

以相反的顺序把原有数组的内容重新排序

3.3 反排序法

基本思想

把数组最后一个元素与第一个元素替换,倒数第二个元素与第二个元素替换,以此类推,直到把所有数组元素反转替换

有数组的内容重新排序。
在这里插入图片描述

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

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

相关文章

秒杀的异步优化

在jvm以外的服务,不受jvm内存的限制 不仅仅做数据的存储,还保证了数据的安全,持久化 1.基于List结构模拟消息队列 优点: 利用Redis存储,不受JVM内存限制 基于Redis的持久化机制,数据安全性有保证 可以满…

MQTT搭建笔记

提示:记录mqtt服务搭建及访问教程 文章目录 前言一、MQTT是什么?二、使用步骤1.MQTT服务器搭建2.MQTT集成 总结 前言 一直想了解下mqtt,本人又懒,被动型学习,刚好项目需要,此篇记录下MQTT搭建过程及心得体…

MS5147/MS5148模数转换器可pin对pin兼容ADS1247/ADS1248

‎ADS1246、ADS1247 和 ADS1248 是高度集成的精密 24 位模数转换器 (ADC)。这些器件具有一个板载、低噪声、可编程增益放大器 (PGA)、一个带有单周期建立数字滤波器的精密三角积分 (ΔΣ) ADC 和一个内部振…

【原创】H7-TOOL的CANFD Trace操作说明,不需要目标板额外做任何代码, 支持在线和脱机玩法(2023-05-15)

【原创】H7-TOOL的CANFD Trace操作说明,不需要目标板额外做任何代码, 支持在线和脱机玩法(2023-05-15) 【当前支持功能】 1、LUA小程序控制,使用灵活。 2、采用SWD接口直接访问目标板芯片的CANFD外设寄存器和CANFD RAM区实现&…

【Linux】自动化构建工具--make/Makefile调试器--gdb的使用

目录 一、自动化构建工具--make/Makefile使用原理项目清理 二、调试器--gdb的使用使用 一、自动化构建工具–make/Makefile 使用 一个工程的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪…

聊个简单的话题:如何分析性能需求?

目录 前言 需求评估分析 性能测试方案 前言 前几天还在北京出差时候,微信群有个同学问了一个问题,为什么800并发压测,服务器还没有报错?当时群里其他同学提了很多观点,比如: 并发不够,加并…

某医院Pad网络故障分析

分析背景 某医院为了加强信息安全管理,防止病人隐私信息泄露,采用部署“零信任”安全架构设计理念的企业移动安全支撑平台方案。 但在部署前期测试时,遇到了严重的性能问题。 在本次测试环境中,通过PAD访问患者转运业务&#x…

【深入浅出 Yarn 架构与实现】6-4 Container 生命周期源码分析

本文将深入探讨 AM 向 RM 申请并获得 Container 资源后,在 NM 节点上如何启动和清理 Container。将详细分析整个过程的源码实现。 一、Container 生命周期介绍 Container 的启动由 ApplicationMaster 通过调用 RPC 函数 ContainerManagementProtocol#startContain…

SWLLOE

前面讲过了workman,现在我们再了解另外一个swoole,首先我们要了解swoole是个啥?swoole其实是一个面向生产环境的 PHP 异步网络通信引擎,PHP Swoole 作为网络通信框架可以使 PHP 开发人员可以编写高性能的异步并发 TCP、UDP、Unix…

Edge浏览器使用ChatGPT,新手这里看(免费快捷)

前言: ChatGPT受到越来越多人的关注,ChatGPT好不好用,我觉得仁者见仁、智者见智吧,不过首先得先使用感受一下才好回答。多数人都想体验/使用ChatGPT一波,但目前付费和各种渠道满天飞,让人很苦恼&#xff0c…

越来越多企业出现网络安全问题,是什么原因导致的?

近年来网络安全问题层出不穷,信息泄露、网络钓鱼、黑客攻击等问题频繁发生。 尽管有证据表明在一些全球知名的企业组织中存在价值数十亿美元的网络安全漏洞,但企业仍然没有认真对待网络安全。大公司在寻找各种理由来减少其网络安全预算,从而…

操作系统学习笔记(二)

目录 你如何理解“临界”这个词? 那你如何理解在计算机领域下的“临界”这个词呢? 如何理解计算机领域中的“同步”这个词呢? 你如何理解critical这个单词? 单标志法: 双标志先检查法 双标志后检查法&#xff0…

Spring Cloud Gateway路由到Amazon S3签名失败处理

Spring Cloud Gateway路由到Amazon S3签名失败处理 背景 最近在预研统一存储网关,想到就是使用Spring Cloud Gateway作为网关的入口,再反向代理到S3对象存储服务器。 软件版本 网关:Spring Cloud Gateway 3.1.2 s3对象存储:m…

语音识别 | kaggle鸟叫识别新赛赛题解析

整理自kaggle平台 赛题题目: BirdCLEF 2023 kaggle - 鸟声识别大赛 赛题链接:https://www.kaggle.com/competitions/birdclef-2023 赛题背景 鸟类是生物多样性变化的极好指标,因为它们具有高度流动性并且具有多样化的栖息地要求。因此物种…

Jmeter和Postman那个工具更适合做接口测试?

软件测试行业做功能测试和接口测试的人相对比较多。在测试工作中,有高手,自然也会有小白,但有一点我们无法否认,就是每一个高手都是从小白开始的,所以今天我们就来谈谈一大部分人在做的接口测试,小白变高手…

推特运营的方法

推特是一个广泛使用的社交媒体平台,可以通过以下方法来运营和营销: 建立一个完整的个人或品牌资料:确保你的推特资料页面清晰、有吸引力,并包含关键信息,如个人简介、网站链接和联系方式。 确定目标受众:…

【重制版】10分钟学会WINDOWS、MAC、LINUX如何安装GPT桌面版

文章目录 1 前言2 Windows版下载安装2.1 安装包2.2 winget下载 (注意看,不是wget!) 3 Mac版下载安装3.1 安装包3.2 homebrew安装 4 Linux版下载安装4.1 安装包4.2 终端下载 5 特点5.1 软件特点5.2 菜单功能(个人喜好特…

ChatGPT:【万能话术模板】+99个提示词

一:万能话术提示模板 【方便观看版】 【方便复制版】 现在你是一位[ ]创作者。你的任务是以[ ]为标题写一份[ ]的文章。 文章内容包含[ ] [ ] [ ]3部分。 听众是 [ ],他们喜欢 [ ],看重[ ]。 你的写作风…

python3 爬虫相关学习2:网页相关基础知识笔记

1 网页的构成 一般来说&#xff0c;日常看到的网站的网页的组成内容有如下 html 结构的代码css 结构的代码资源&#xff08;文字&#xff0c;图片&#xff0c;音乐&#xff0c;视频等等&#xff09; html 网页结构描述的语言 比如这种写法的文件 <html> <body> …

机器学习基础知识之分类性能评价指标

文章目录 分类性能基本概念1、准确率1、精确率2、召回率3、F1-score4、ROC曲线5、多分类问题中的相关指标6、混淆矩阵 分类性能基本概念 与预测性能评价指标相类似&#xff0c;分类性能评价指标同样也是将模型计算得出的标签值与实际的真实标签值通过数学统计上的公式进行计算…