• 数据结构---列表与数组


    1.列表是如何存储的?

      列表是一块连续的内存空间,上一个数下一个数是连续的

      列表叫动态表,数组叫线性表

    2.列表可以做哪些操作?

      根据索引查(读)、改(写)  -----  时间复杂度O(1)

      删除,插入(最后一位删除pop或插入append,时间复杂度是O(1))---- 时间复杂度O(n)

    2. 列表在其他语言中叫 ”数组“,”数组“较列表底层,他们的区别:

        int a[5]:

        数组的长度是固定的,在声明时就要设定它的长度,不能追加,而列表长度不固定,可以随意append

        数组中存放的数据必须是相同的,要是字符串(整数、对象)就都是字符串(整数、对象),而列表没有这个要求,可以既要字符串,又有整数、对象等数据类型。

    3. 说说数组:

      (1)数组是一块连续的内存空间

      (2)列表叫动态表,数组叫线性表

      (3)根据索引查(读)、改(写)  -----  时间复杂度O(1)

          删除,插入(最后一位删除pop()或插入append(),时间复杂度是O(1))---- 时间复杂度O(n)

      (4)增加数据:长度是固定的,那要想数组长度变长怎么办?再申请一块更大的内存空间,把之前的数组copy过来,然后把之前的内存空间释放掉就可以了。时间复杂度是O(1)

      (5)修改数据:存放的数据必须相同,要是不想相同呢,不直接在内存中存数据,把每个数据存到不同的内存地址中,把每个内存地址存放到内存中。此时要想修改数据,就不能按照索引来改了,而是应该再开辟一块内存空间,将数据存进去,再将该内存地址存放到内存中,将之前数据的内存地址覆盖掉。

      

  • 相关阅读:
    C++数字与字符串相互转化
    NextDate问题
    Mac使用host屏蔽某指定网站
    Pycharm里面使用anaconda配置环境
    Logisim
    XML有关知识
    Mac环境下的Tomcat
    Allow apps downloaded from Anywhere
    寻找两数之和
    最大子序列
  • 原文地址:https://www.cnblogs.com/yanyufeng/p/9852299.html
Copyright © 2020-2023  润新知