分享好友 最新动态首页 最新动态分类 切换频道
数组 查找 对应索引
2024-12-26 11:10


数组 查找 对应索引



  • 数组中判断元素是否存在的时间复杂度一般为O(n),是因为大家一般的做法都是遍历一遍数组看看所要找的数据是否存在。
  • 这里介绍一种利用key的唯一性来实现的时间复杂度为O(1)的判断元素是否存在的方法
  • 在c语言里这种方法经常使用,这里介绍在shell的语法中我们如何利用关联数组和key值唯一性来提高脚本的执行效率







O(n2)的普通搜索





O(1)的关联数组搜索


Shell Associative Array
  bashi没有原生的对于类似hash table的支持,不像perl或python.
下标数组元素是通过数组下标(数组下标可以是算术表达式,其结果必须是一个整数)来访问的,但是这种访问方式在表达某些关联性很强的数据时会存在限制。
shell 提供了另外一种数组,其可以使用任意的字符串作为下标(不必是整数)来访问数组元素。这种数组叫做关联数组(associative array)。
关联数组的下标和值称为键值对,它们是一一对应的关系。在关联数组中,键是唯一的,值可以不唯一。
shell 的关联数组和 perl 的关联数组在实现功能上是一样的。在 perl 中,关联数组有时候称为哈希(hash)。

定义关联数组
shell 的关联数组和 shell 的下标数组在定义和使用上完全一样,只是在索引上有区别。
需要注意的是,在使用关联数组之前,需要使用命令 declare -A array 进行显示声明。



下标数组元素是通过数组下标(数组下标可以是算数表达式,其结果必须是一个整数)来访问的,但是这种访问方式在表达某些关联性很强的数据时会存在限制





类似于php,shell也提供了一种数组,其可以使用任意的字符串作为下标来访问数组元素,这种数组叫关联数组,关联数组也是php的精髓所在





注意,shell中定义关联数组需要声明,声明语法:



    示例 1


    在命令提示符下输入 https://blog.51cto.com/u_14457/test.sh,执行结果如下:





    操作关联数组的语法


    关联数组的操作语法和数组的操作语法完全一致,如下列出常见的操作。




    示例 2


    test.sh 文件的内容如下




    在命令提示符下输入 https://blog.51cto.com/u_14457/test.sh,执行结果如下:






    数组:


    下标数组

    直接赋值



    圆括号顺序赋值





    前提:关联数组需要进行语法声明





    1. declare -A array_name  



    赋值







    数组长度

    命令



    1. 用${#数组名[*或@]}可以获得数组长度  

    数组value读取

    命令



    1. 用${下标数组名[下标]} 或 ${关联数组[key]}  



    注:下标是*或者@可以得到整个数组的内容








    数组键值(key)读取

    命令



    1. 用${!数组名[*或@]}  










    最新文章
    2024京基智农山海公馆(深圳)首页网站丨房价_户型图_规划图_平面图
    项目基本信息开发商:京基集团总占地:10.5万㎡总建面:70万㎡公馆占地:0.958万㎡公馆建面:12.470万㎡御园占地:3.42万㎡御园建面:25万㎡产权:50年(13-63年)套数,505户 公寓:361套面积:公馆:73-80㎡2房1卫御园:175㎡5房3卫公寓:3
    360网站SEO优化秘籍,高效策略助您在搜索引擎中独占鳌头
    360网站SEO优化策略,旨在提升网站在搜索引擎中的排名。通过关键词研究、高质量内容创作、优化网站结构、提高用户互动性及建立权威链接,该策略帮助网站在激烈竞争中脱颖而出,吸引更多流量,提升品牌影响力。随着互联网的快速发展,越来越
    2024年新奥历史记录,系统分析解释定义_iPad50.837
    2024年,新奥历史记录系统(New Olympic Historical Record System,简称NOHRS)问世,它是一个革命性的技术,旨在为奥运会和其他大型体育赛事提供全面的数据分析和记录。iPad50.837是NOHRS的一部分,它是一款专为运动员和教练设计的高性能
    360手机清理大师免费版下载
    360手机清理大师免费版破解版操作简单易上手,可以一键清理手机上的垃圾文件,轻松解决手机空间不足问题。360手机清理大师免费版破解版具有手机加速、微信清理、短信清理等功能,满足不同用户的清理需求哦,软件是免费使用的,实用性超高的
    2025年人工智能变革:红杉资本最新预测解读
    每一场技术革命都伴随着令人兴奋的预言和期待,2025年即将到来,人工智能的未来引起了全球关注。根据红杉资本的最新洞察,2025年将是AI领域的重要转折点,潜力巨大但同样伴随着竞争激烈。那么,从红杉资本的视角来看,这一切意味着什么呢?
    ITALTHERM热水器全国服务电话网点(快速客服故障中心)
    本报讯 (记者贾丽)近日,全球领先的IT市场研究和咨询公司IDC发布首份《中国混合云市场份额,2023:持续在政企行业增长》报告显示,2023年中国混合云整体市场规模达887.9亿元。整体市场收入近70%来自于中国头部的大型云服务提供商,主要收
    5月29日操盘必读:影响股市利好或利空消息
    专题:中国资产估值低性价比高 机构看好六类板块机会  宏观新闻  1、中共中央政治局5月27日下午就促进高质量充分就业进行第十四次集体学习。中共中央总书记习近平在主持学习时强调,促进高质量充分就业,是新时代新征程就业工作的新定
    094期专家[恨水一航]双色球6+1精准预测
    玩法本期推荐上期推荐命中情况红球24码03,04,05,0607,08,09,1011,12,16,1820,21,22,2425,26,27,2829,30,31,3301,02,03,0506,08,09,1011,12,13,1516,17,18,1921,22,23,2426,27,29,32对5码红球21码03,04,05,0607,08,09,1011,12,16,1821,22,25
    h5页面模版源码
    !DOCTYPE htmlhtmlheadmeta http-equiv=Content-Type content=text/html; charset=utf-8 /link rel=shortcut icon href=https://download.csdn.net/download/jiayf020978/misc/favicon.ico type=image/vnd.microsoft.icon /link rel=shortl
    相关文章
    推荐文章
    发表评论
    0评