zoukankan      html  css  js  c++  java
  • 数组和字符串-笔记

    一、集合,列表与数组

    集合:由一个或多个确定的元素构成的一个整体;
    集合特点:1.集合内的数据是无序的;2.集合内的数据类型不一定相同;
    列表:又称为线性列表,由数据项构成的有限序列,按照一定的线性顺序,排列而成的数据项集合;
    列表特点:1.列表中的数据类型可能不一致;2.列表是按照一定的线性顺序排列的;3长度是可变的;3.列表中的元素在内存中可能是相邻的,也有可能是不相邻的,如列表的另一种实现方式---链表,它的元素在内存中则不一定是连续的;
    列表在编程语言中的常见表现形式有数组和链表,栈和队列是两种特殊的链表。
    数组:数组是列表的一种特殊实现形式,数据存储是有序的,是通过索引来对数组进行访问(列表中没有索引),下表从0开始;
    数组特点:1.存储方式是有序的;2.用索引来标示数组中的内容,索引是从下表0开始;3.数组中的元素在内存中是连续的;4,每个数组中的元素占用内存相同;

    二、数组的操作

    1、读取元素
    (1)方式:访问索引(下标)来读取,索引一般从0开始。
    (2)过程:先在内存中为数组申请一段连续的空间,并且会记下索引为0处的内存地址,之后由记下的索引为0处内存地址 + 索引值 = 目标元素的地址,即找到目标元素。
    (3)时间复杂度:O(1)

    2、查找元素
    (1)过程:从数组开头逐步向后查找。如果数组中的某个元素为目标元素,则停止查找;否则继续搜索直到到达数组的末尾。
    (2)时间复杂度:O(N),N 为数组的长度。

    3、插入元素
    (1)末尾插入
    (2)首尾间插入用链表省时

    4、删除元素
    (1)删除掉数组中的某个元素后,数组中会留下空缺的位置,而数组中的元素在内存中是连续的,这就使得后面的元素需对该位置进行填补操作。
    (2)时间复杂度:O(N),N 为数组的长度。

    注:只考虑最坏情况的时间复杂度

  • 相关阅读:
    Logger.getLogger与LogFactory.getLog
    log4j详解
    游戏史上80重要创新(原资料来自17173)
    软件开发工具介绍之 6.Web开发工具
    JAVA NIO 简介
    Alan Kay 你需要认识的一个天才
    大学计算机学习路线
    软件开发工具介绍之 5. 计划管理
    软件开发工具介绍之 4. 建模工具
    关于最近“361强奸360强奸QQ”,且是光天化日之下
  • 原文地址:https://www.cnblogs.com/jiangwg/p/15386374.html
Copyright © 2011-2022 走看看