zoukankan      html  css  js  c++  java
  • 算法导论笔记

    衡量算法效率的常用标准是速度,即一个算法得到最后结果所需要的时间。

    通过具体的例子,来学习算法知识。

    读书的时候,不要错过书中的发散型练习,最好能思考一遍。思考了,你的理解就更深了。

    读书就要多多思考,多多提问。在思考中将知识点理解透彻。

    衡量效率的指标有时间和空间。一般需要时间少,占用空间少的算法好一些。

    当数据量很大很大的时候,高效算法的优势就表现出来了。

    时间复杂度由小到大:O(1)<=O(log2 n)<=O(n)<=O(nlog2 n)<=O(n^2)<=O(n^3)<=.........<=O(n^k)<=O(2^n)。

    伪代码就是采用最具表达力、最简明的方法,来表达一个给定的算法。甚至直接用英语来表达。

    一般考虑算法好坏都是考虑最坏情况运行时间。

    数据结构,是一个信息的结构化表示。

    基本的结构包括两种,线性结构和非线性结构,线性结构有队列、链表、栈,非线性包括树、图。

    线性结构中元素之间存在一对一关系。非线性结构元素之间存在一对多、多对多关系。一对多的比如树,多对多的比如图。

    基本的操作包括:结构的生成和销毁;元素进行检索;插入新的数据元素或删除已经存在的数据元素;遍历数据结构中的元素。

    时间复杂度比较:O(1)<=O(log2 n)<=O(n)<=O(nlog2 n)<=O(n^2)<=O(n^3)<=.........<=O(n^k)<=O(2^n)。

  • 相关阅读:
    二叉树专题
    强化学习的几个基本概念
    LeetCode #111 二叉树的最小深度
    NC127 最长公共子串
    快速排序
    NC78 反转链表
    《合作的进化》读后总结
    Optional和Stream的map与flatMap
    最爱的小工具,谁用谁知道!
    SpringBoot应用启动过程分析
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/2569733.html
Copyright © 2011-2022 走看看