数据结构-数组

数据结构-数组

数据结构本身和语言无关,为了方便理解本文使用java语言举例说明,介绍数组是什么?数组特性和数组使用场景


文章目录


一、数组是什么?

数组是一组拥有相同数据类型有序线性结构数据组。在计算机内存中是连续的地址空间。由于需要分配连续地址空间所以在定义时就必须明确指定数组长度

二、使用

1. 创建数组

根据创建数据类型和长度在内存中开辟一个对应大小的内存空间。

int arrCount = 100;
String [] strs = new String[arrCount];

由于java语言特性只能创建对象数组,不能创建基本类型数组,所以数组下标存放对象地址的引用或指针。

2. 插入数据

根据数组的下标来插入数据,一般第一个下标为0,第二个下标为1,第三个下标为2,依此类推最后一个元素下标为arrCount-1。

        /**
         * 第一个下标插入值
         */
        strs[0] = "value-0";
        /**
         * 第二个下标插入值
         */
        strs[1] = "value-1";
        /**
         * 第三个下标插入值
         */
        strs[2] = "value-2";
        /**
         * 第四个下标插入值
         */
        strs[3] = "value-3";

3. 获取数据

直接通过数组下标获取数据

        /**
         * 获取第一个下标数据
         */
        String value0 =  strs[0];

        /**
         * 获取第二个下标数据
         */
        String value1 =  strs[1];

        /**
         * 获取第三个下标数据
         */
        String value2 =  strs[2];

        /**
         * 获取第四个下标数据
         */
        String value3 =  strs[3];

优缺点

1.优点

直接操作内存指针,插入和查询时间复杂度都为O(1),操作效率非常高(效率最高的数据结构

1.缺点

长度固定,很多场景无法灵活应用(动态数组)

应用场景

知道一组数据的类型和长度时推荐使用


总结

数组是所有数据结构类型中插入和查询时间复杂度最小之一,在程序设计中如果数组数据结构满足需求推荐优先使用。

上一篇:5. 最长回文子串


下一篇:【完虐算法】「字符串-最长公共前缀」5种方法脑洞大开