每种编程语言都有自己独特的语法,但是相对于计算机来说,数据结构和算法是通用的。什么是复杂度?时间复杂度和空间复杂度又是如何的定义的?本文就简单讲一讲。
一、什么是复杂度?
- 程序执行时需要的计算量和内存空间(和代码是否简洁无关)
- 复杂度是 数量级 (方便记忆、推广),不是具体的数字
- 一般针对一个具体的算法,而非一个完整的系统
二、时间复杂度
时间复杂度: 程序执行时需要的计算量(CPU)
- O(1)一次就够(数量级 )
- O(n)和传输的数据量一样(数量级)
- O(n^2)数据量的平方(数量级)
- O(logn)数据量的对数(数量级)
- O(n
*
logn)数据量*
数据量的对数(数量级)
三、空间复杂度
空间复杂度: 程序执行时需要的内存空间
- O(1)有限的可数的空间(数量级)
- O(n)和输入的数据量相同的空间(数量级)
四、现状
前端开发:重时间、轻空间 <br>
《数据结构与算法》系列
- 什么是算法复杂度
- 堆(heap)、栈(stack)、队列(queue)
- 把一个数组旋转k步
- 判断字符串是否括号匹配
- 数组、栈、链表、队列结构与对比
- 用两个栈实现一个队列
- 反转单向链表
- 用链表实现队列
- 二分查找
- 查找两数之和
欢迎访问:天问博客