数组

  • 一、数组
    • 1、数组的定义方法
    • 2、数组包括的数据类型
    • 3、获取数组长度
    • 4、获取数据列表
    • 5、读取某索引赋值
    • 6、数组遍历
    • 7、数组切片
    • 8、数组替换
    • 9、数组删除
    • 10、数组追加元素
  • 二、数组排序算法
    • 1、冒泡算法
    • 2、直接排序法
    • 3、反转排序

一、数组

1、数组的定义方法

①、方式一:

②、方式二:

③、方式三:

④、方式四:

2、数组包括的数据类型

数值类型
字符类型(字符串):使用" "或’ '定义,防止元素当中有空格,元素按空格分割。

3、获取数组长度

4、获取数据列表

5、读取某索引赋值

6、数组遍历

7、数组切片

8、数组替换


9、数组删除

10、数组追加元素

方法一:按照索引进行逐个添加
array_name[index]=value

方法二:按照最大索引值进行向后添加
array_name[${#array_name[@]}]=value

方法三:使用原数组的元素进行重新赋值
array_name=("${array_name[@]}" value1 value2 … valueN)

注:
双引号不能省略,否则数组中存在包含空格的元素时会按空格将元素拆分成多个
不能将“@”替换为“”,如果替换为“”,不加双引号时与“@”的表现一致,加双引号时,会将数组array_name中的所有元素作为一个元素添加到数组中

方法四:
array_name+=(value1 value2 … valueN)

注:待添加元素必须用“()”包围起来,并且多个元素用空格分隔

11、向函数传递数组参数


二、数组排序算法

1、冒泡算法

类似气泡上涌的动作,会将数据在数组中从小到大或者从大到小不断的向前移动

基本思想:
冒泡排序的基本思想是对比相邻的两个元素值,如果满足条件就交换元素值,把较小的元素移动到数组前面,把大的元素移动到数组后面(也就是交换两个元素的位置),这样较小的元素就像气泡一样从底部上升到顶部。

算法思路:
冒泡算法由双层循环实现,其中外部循环用于控制排序轮数,一般为要排序的数组长度减1次,因为最后一次循环只剩下一个数组元素,不需要对比,同时数组已经完成排序了。而内部循环主要用于对比数组中每个相邻元素的大小,以确定是否交换位置,对比和交换次数随排序轮数而减少。


2、直接排序法


3、反转排序

以相反的顺序把原有数组的内容重新排序
基本思想:
把数组最后一个元素与第一个元素替换。倒数第二个元素与第二个元素替换,以此类推,直到把所有的数组元素反转替换完。

【拔刀吧少年】之shell数组相关推荐

  1. 【拔刀吧少年】之shell函数

    函数 一.shell函数定义 二.格式 三.函数返回值 四.函数传参 五.函数变量的作用范围 六.递归 1.阶乘 2.递归查目录 七.创建函数库 总结 一.shell函数定义 将命令序列按格式写在一起 ...

  2. 【拔刀吧少年】之shell编程规范与变量

    shell编程规范与变量 一.Shell脚本概述 1.shell脚本的概念 2.shell脚本应用场景 3.shell的作用--命令翻译器,"翻译官"(`又称命令的组合`) 二.用 ...

  3. 【拔刀吧少年】之awk文本和数据处理编程语言

    AWK 1. 什么是awk 2. 基本格式 3. 工作原理 4. 常见的内建变量(可直接用) 5. 按行输出文本 6. 按字段输出文本 7. 通过管道.双引号调用shell命令 8. 小案例 :awk ...

  4. 【拔刀吧少年】之Expect 自动化控制和测试 Here Document 免交互

    免交互 一.Here Document免交互 1.1 概述 1.2 语法格式 1.3 简单案例 1.4 支持变量替换 1.5 多行注释 1.6 完成自动划分磁盘免交互 二.Expect进行免交互 2. ...

  5. 【拔刀吧少年】之sort uniq tr cut eval常用命令

    sort uniq tr cut eval 一.排序命令--sort 1.格式 2.常用选项 二.去除重复行操作命令--uniq 1.格式 2.常用选项 3.示例 三.字符转换命令--tr 1.格式 ...

  6. 【拔刀吧少年】之sed编辑器

    sed 一.sed编辑器 二.sed编辑器工作流程 1.读取 2.执行 3.显示 三.命令格式 四.常用选项 五.常用操作 六.使用地址 七.删除行 八.替换 1.格式 2.4种替换标记 九.插入 一 ...

  7. 【拔刀吧少年】之循环三兄弟for while until

    循环三兄弟 一.echo命令 – 输出字符串或提取Shell变量的值 1.格式 2.常用参数 3.常用的转义字符 二.循环语句 1.for循环结构 2.while循环语句结构(迭代) 3.until ...

  8. 【拔刀吧少年】之正则表达式

    序言 正则表达式 通常用于判断语句中,用于检查某一字符串是否满足某一格式 正则表达式是由普通字符与元字符组成 普通字符包括大小写字母.数字.标点符号及一些其他符号 元字符是指在正则表达式中具有特殊意义 ...

  9. 【拔刀吧少年】之条件语句

    条件语句 一 .条件测试 1.test命令 2.文件测试 3.逻辑测试 4.整数值比较 5.字符串比较 二.if条件语句 1.单分支 2.双分支 3.多分支 4.例题 三.case语句结构 总结 一 ...

最新文章

  1. 5分钟解析Facebook最新推荐算法
  2. 待研究金华的存储过程
  3. SpringCloud Zuul(一)之介绍
  4. AUTOSAR从入门到精通100讲(二十六)-AutoSar之微控制器抽象层MCAL
  5. python super详解_Python super 详解
  6. 判断两个时间段是否重叠的算法
  7. Java学习笔记-枚举类
  8. c语言程序设计第六章习题答案,C语言程序设计(第2版) 刘克威,张凌晓著 习题答案-第六章...
  9. 【转】学术论文写作方法
  10. 再次领先全国,第一只波士顿机器狗落户上海,等你来撸
  11. 给小白程序员的建议!
  12. 基于Python的招聘推荐与薪资预测系统的设计与实现
  13. 小明身高180cm,小刚身高165cm,计算两人的身高差
  14. win10操作系统 64位 原版 百度网盘下载
  15. 字符串排序算法:低位优先排序(LSD)
  16. 测不准原理主要指向微观
  17. M87 黑洞照片的捕捉背后,这个程序媛功不可没
  18. 计算机软件优化,系统优化
  19. 构建你的第一个Android应用
  20. 阿里云ONS / RocketMQ的定时消息 / 延时消息

热门文章

  1. mysql空间释放_linux 空间释放,mysql数据库空间释放
  2. php composer内存不足,composer 安装插件提示内存不足等问题
  3. php 获取下拉框选中的文本,jQuery如何获取select选择的文本与值?(代码示例)...
  4. matlab 边界连续,matlab的边界问题
  5. Spring Cloud Zuul The 'Access-Control-Allow-Origin' header contains multiple values
  6. 从零开始搭建spring-cloud(0) --springboot与springcloud的关系
  7. 别再问我如何双击打开.ipynb文件了!
  8. 一个小小指针,竟把Linux内核攻陷了!
  9. Python小知识 | 这些技能你不会?(终章)
  10. ddos发包机原理_简单的DDOS发包学习思路大家可以在去写