每种编程语言都有自己独特的语法,但是相对于计算机来说,数据结构和算法是通用的。什么是复杂度?时间复杂度和空间复杂度又是如何的定义的?本文就简单讲一讲。

一、什么是复杂度?
- 程序执行时需要的计算量和内存空间(和代码是否简洁无关)
 - 复杂度是 数量级 (方便记忆、推广),不是具体的数字
 - 一般针对一个具体的算法,而非一个完整的系统
 
二、时间复杂度
时间复杂度: 程序执行时需要的计算量(CPU)
- O(1)一次就够(数量级 )
 - O(n)和传输的数据量一样(数量级)
 - O(n^2)数据量的平方(数量级)
 - O(logn)数据量的对数(数量级)
 - O(n
*logn)数据量*数据量的对数(数量级) 

三、空间复杂度
空间复杂度: 程序执行时需要的内存空间
- O(1)有限的可数的空间(数量级)
 - O(n)和输入的数据量相同的空间(数量级)
 
四、现状
前端开发:重时间、轻空间 <br>
《数据结构与算法》系列
- 什么是算法复杂度
 - 堆(heap)、栈(stack)、队列(queue)
 - 把一个数组旋转k步
 - 判断字符串是否括号匹配
 - 数组、栈、链表、队列结构与对比
 - 用两个栈实现一个队列
 - 反转单向链表
 - 用链表实现队列
 - 二分查找
 - 查找两数之和
 
欢迎访问:天问博客