栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

王道数据结构复习笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

王道数据结构复习笔记

一、数据结构和算法 数据结构

概念:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。

三要素:

  1. 逻辑结构

    概念:指数据元素之间的逻辑关系。

    分类:

    • 线性结构:线性表(栈、队列、串、数组…)。
    • 非线性结构:集合、树形结构、图状结构。
  2. 存储结构(物理结构)

    概念:指数据结构在计算机中的表示。

    分类:顺序存储、链式存储、索引存储、散列存储。

  3. 数据运算

    概念:包括运算的定义和实现。

算法

概念:对特定问题求解步骤的一种描述。

重要特性:有穷性、确定性、可行性、输入、输出。

优秀标准:正确性、可读性、健壮性、效率、低存储量需求。

复杂度:

  1. 时间复杂度

    概念:算法中所有语句的执行次数之和。

    分类:最好时间复杂度、平均时间复杂度、最坏时间复杂度。

    常见时间复杂度: O ( 1 ) < O ( l o g 2 n ) < O ( n ) < O ( n l o g 2 n ) < O ( n 2 ) < O ( n 3 ) < O ( 2 n ) < O ( n ! ) < O ( n n ) {color{Purple}Oleft ( 1right )}<{color{Green}Oleft ( log_{2}nright )}<{color{Orange}Oleft ( nright )}<{color{Magenta}Oleft ( nlog_{2}nright )}<{color{DarkOrange}Oleft ( n^{2}right )}<{color{DarkBlue}Oleft ( n^{3}right )}<{color{blue}Oleft ( 2^{n}right )}<{{color{Cyan}Oleft ( n!right )}}<{color{black}Oleft ( n^{n}right )} O(1)

  2. 空间复杂度

    概念:算法所耗费的存储空间

    注:当算法所需的辅助空间为常量时,空间复杂度为 O ( 1 ) {color{Purple}Oleft ( 1right )} O(1)

  3. 计算规则

    • 加法规则: O ( f ( n ) ) + O ( g ( n ) ) = O ( m a x ( f ( n ) , g ( n ) ) ) Oleft ( {color{Green}fleft ( nright )}right )+Oleft ( {color{Blue}gleft ( nright )}right )=Oleft ( maxleft ( {color{Green}fleft ( nright )},{color{Blue}gleft ( nright )}right )right ) O(f(n))+O(g(n))=O(max(f(n),g(n)))
    • 乘法规则: O ( f ( n ) ) ∗ O ( g ( n ) ) = O ( f ( n ) ∗ g ( n ) ) Oleft ( {color{Green}fleft ( nright )}right )*Oleft ( {color{Blue}gleft ( nright )}right )=Oleft ( {color{Green}fleft ( nright )}*{color{Blue}gleft ( nright )}right ) O(f(n))∗O(g(n))=O(f(n)∗g(n))
二、线性表 定义

概念:线性表是具有相同数据类型的n个数据元素的有限序列。

特点:

  • 表中元素个数有限
  • 表中元素具有逻辑上的顺序性,有先后次序
  • 每个元素数据类型相同,占用相同大小的存储空间

注:线性表是一种逻辑结构,表示元素之间一对一的相邻关系。顺序表和链表是存储结构

基本操作
函数描述
InitList(&L)初始化表,构造一个空的线性表
Length(L)求表长,返回线性表L中数据元素的个数
LocateElem(L,e)按值查找
GetElem(L,i)按位查找,获取表L中第i个位置的元素
ListInsert(&L,i,e)在表L的第i个位置插入元素e
ListDelete(&L,i,&e)删除表中第i个位置的元素,并用e返回删除元素的值
PrintList(L)遍历输出线性表L
Empty(L)若L为空表返回true,否则返回false
DestroyList(&L)销毁线性表并释放占用的内存空间

注:考试尽量使用这些函数名称,方便老师阅卷

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1021297.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号