数组

数组

线性表存储结构,使用一块连续的内存空间,存储相同类型的一组数据

查找

数组支持按照下标随机访问数组元素,访问的时间复杂度为O(1)

删除

删除操作分析:

  • 如果删除最后一个元素,只需要执行一次删除操作,时间复杂度为O(1)

  • 如果删除第一个元素,除了执行一次删除操作,还需要执行n-1次数据搬移操作,时间复杂度为O(n)

删除操作的时间复杂度分析:

  • 最好情况时间复杂度O(1)

  • 最坏情况时间复杂度O(n)

  • 平均情况时间复杂度O(n)

删除操作的优化:

  • 如果不要求元素保持原有顺序,可以将需要删除元素,与最后一个元素做交换,然后删除最后一个元素,此时时间复杂度为O(1)

  • 如果要求元素保持原有顺序,可以将多次删除操作集中在一起

添加

添加操作分析:

  • 如果在数组末尾添加数据,只需执行一次添加操作,时间复杂度为 O(1)

  • 如果在数组开始添加数据,需要执行n-1次数据搬移操作和一次添加操作,时间复杂度为O(n)

时间复杂度分析:

  • 最好情况时间负载度:O(1)

  • 最坏情况时间复杂度:O(n)

  • 平均情况时间复杂度:O(n)

优化方法:

  • 如果数组元素不需要保持原有顺序不变,可以在数组末尾添加元素,然后将最后一个元素与指定下标元素交换顺序

Last updated

Was this helpful?