什么是算法,算法复杂度是什么
完成一个数据对象上所需的操作用到的方法就是算法。
一个算法通常要考虑算法的空间复杂度S(n),和算法的时间复杂度T(n)。通常,我们通过算法的时间复杂度来判断一个算法是不是好的算法。
算法的时间复杂度就是一个算法写成的程序在执行时耗费时间的长度。
时间复杂度O(1)
无论数据增大多少倍,耗时/耗空间都不会变化。
时间复杂度O(logN)
当数据增大N倍的时候,耗时增加logN倍。这里的logN是以2为底的。例如数据增大256倍,但是实际上的耗时只增加了8倍。
时间复杂度O(n)
当数据增大N倍的时候,复杂度也增大N倍。
时间复杂度O(nlogN)
当数据增大N倍的时候,时间复杂度增大NlogN倍。当数据增大256倍的时候,时间复杂度增大了256 * 8倍。
时间复杂度O(n2)
当数据增大N平方的时候,时间复杂度增大N平方倍。当数据增大256倍的时候,时间复杂度增加65536倍。
总结
所以在做一个功能的时候一定要考虑它的算法复杂度。尽量将复杂度降到最低。