数组

什么是数组?

盛有单一类型、固定数量值的容器类,涉及到的问题:

  • 以0开始的索引: 通过索引访问数组中元素,不论访问开始、中间、末尾,其时间复杂度都为O(1)
  • 数组长度: 长度是固定的
  • 内存表示: 连续的
  • 数据类型:同一数据类型,数组不是python中的列表
  • 边界检查:不能越界

    1. ![image.png](https://cdn.nlark.com/yuque/0/2020/png/1281683/1589463001354-e70a2432-1ae0-429e-abe5-924b70e798ed.png#align=left&display=inline&height=277&margin=%5Bobject%20Object%5D&name=image.png&originHeight=216&originWidth=423&size=52105&status=done&style=none&width=543)

    动态数组

  • 读取

  • 尾部增加删除
  • 中间增加删除
  • 改变形状
  • 按位查找
  • 打印输出所有元素
  • 数组和动态数组有什么区别?
  • 数组和Hash表有什么区别?
  • 数组和链表有什么却别?

练习:洗牌问题

题目: 手里面n张不同牌面的牌,编写一个洗牌程序,让随机取出一张牌的概率相同。
要求: 说明算法思路、分析时间复杂度、用Array编写洗牌程序、编写测试用例。
解答过程参考链接https://www.cnblogs.com/sinlearn/p/12892126.html

练习: 计算素数

题目:给出一个数N,输出2-N之间的所有素数。
解答过程参考链接:https://www.cnblogs.com/sinlearn/p/12907208.html