《算法(第四版)》笔记(1)

    xiaoxiao2021-03-25  110

    一、基础

     

    1.背包,队列,栈

    背包:一种不支持删除元素的集合数据类型,迭代的顺序不确定

    先进先出队列:一种基于先进先出策略的集合类型

    下压栈:一种基于后进先出策略的集合类型

     

    2.集合数据类型的体现

    定容栈、泛型、迭代

     

    3.链表

    链表是一种递归的数据结构,它或者为空(null),或者是指向一个结点(node)的引用,该结点含有一个泛型的元素和一个指向另一条链表的引用。链表表示的是一列元素。

    链表(首尾)增删快:将原结点的引用指向新结点,删除结点,只需将引用指向自身,故链表的增删速度与其长度无关。

    实现任意插入和删除应该使用双向链表。

    链表的遍历:初始化索引变量,通过.next访问到引用为null为止。

    for(Node x=first; x!=null ; x=x.next)

     

    4.算法分析

    描述              增长的数量级             典型代码                  说明                    举例

     

    常数级别              1                          a=b+c                         普通语句              相加

    对数级别         logN                        二分查找                     二分策略       二分查找

    线性级别         N                             for()if                     循环              找出最大元素

    线性对数级别  NlogN                                                        分治              归并排序

    平方级别         N^2                        for for if                       双层循环       检查所有元素对

    立方级别        N^3                                                           三层循环    检查所有三元组

    指数级别        2^N                                                           穷举查找    检查所有子集

     

    转载请注明原文地址: https://ju.6miu.com/read-25861.html

    最新回复(0)