zoukankan      html  css  js  c++  java
  • 数据结构、算法、线性表总结

    一、数据结构

    1.存储结构是逻辑结构是映射

    2.逻辑结构与存储结构的关系

    ◼ 存储结构是逻辑结构在计算机中的存储形式

    ◼ 同一逻辑结构可以对应多种存储结构

    ◼ 同样的操作在不同的存储结构上,实现方法不同

    二、算法

    1.递归O()计算:

    ​ ◼时间复杂度的关系:

    ​ O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n3)

    ◼指数时间的关系为: 
    

    ​ O(2n)<O(n!)<O(nn)

    ​ ◼最好时间复杂度

    ​ 算法在最好情况下的时间复杂度

    ​ ◼ 最坏时间复杂度

    ​ 算法在最坏情况下的时间复杂度,确定了算法执行时间的上界。

    ​ ◼ 平均时间复杂度

    ​ 算法在所有可能情况下,按照输入实例以等概率出现时,算法计算量的加权平均值。

    ​ ◼更关心最坏情况下和平均情况下的时间复杂度。

    ​ ◼很多情况下,算法的平均时间复杂度难于确定,通常只考虑最坏情况下的时间复杂度。

    3.算法存储空间分析

    ​ ◼ 算法的空间效率

    ​ 算法的执行过程中,所占据的辅助空间数量

    ​ ◼ 空间复杂度

    ​ 算法在运行过程中临时占用的存储空间的度量

    ​ ◼一般也是问题规模n的的函数S(n)=O(g(n))

    ​ ◼算法的时间复杂度与空间复杂度相互影响。

    ​ ◼好的时间复杂度,可能会导致占用较多存储空间

    ​ ◼ 通常情况下:

    ​ 鉴于运算空间较为充足,常以算法的时间复杂度作为算法优劣的衡量指标。

    三、线性表

    1.顺序

    2.链式

    3.建立单链表

    ​ ◼头插法

    ​ 思路:生成一个空表,不断将新节点插入链表表头

    void CreateListF(LinkList *&L, ElemType a[], int n)
    { 	
    	LinkList *s;
    	int i;
    	L = new LNode;
        L->next = NULL; //创建头节点,其next域置为NULL
    	for (i=0; i<n; i++) { //循环建立数据节点
    		s = new LNode; 
    		s->data = a[i]; //创建数据节点*s
    		s->next = L->next; //将*s插在原开始节点之前,头节点之后
    		L->next = s;
    	}
    }
    

    ​ 链表的节点顺序与逻辑次序相反

    ​ ◼尾插法

    ​ 思路:将新节点始终插入链表表尾,需要一个尾指针r

    void CreateListR(LinkList *&L, ElemType a[], int n)
    { 
    	LinkList *s,*r;
    	int i;
    	L = new LNode; //创建头节点
    	r=L; //r始终指向尾节点,开始时指向头节点
    	for (i=0; i<n; i++) { //循环建立数据节点
    		s = new LNode;
    		s->data = a[i]; //创建数据节点*s
    		r->next = s; //将*s插入*r之后
    		r = s;
    	}
    	r->next = NULL; //尾节点next域置为NULL
    }
    
    四、栈与队列

    ​ ◼ 链栈

    ​ 无需附加头结点,栈顶指针就是链表(即链栈)头指针

    五、串

    ◼ next函数


    疑难问题及解决方案
    迷宫问题和KMP,以及next函数,一开始并没有看懂,后来在网上找了一些讲解资源,弄懂了
    PTA上有一些对一半的题,通过和同学作业的对比,找出了问题,改正了过来

  • 相关阅读:
    AcWing 1027. 方格取数 dp
    AcWing 1014. 登山 dp
    acwing 482. 合唱队形 dp
    LeetCode 1463. 摘樱桃II dp
    LeetCode 100. 相同的树 树的遍历
    LeetCode 336. 回文对 哈希
    LeetCode 815. 公交路线 最短路 哈希
    算法问题实战策略 DARPA大挑战 二分
    算法问题实战策略 LUNCHBOX 贪心
    AcWing 1100. 抓住那头牛 BFS
  • 原文地址:https://www.cnblogs.com/lim-M/p/12589543.html
Copyright © 2011-2022 走看看