时间复杂度,空间复杂度,编码复杂度有什么区别与联系
时间复杂度是程序求解问题,所需要执行的次数,如for(int i=0;i<n;i++){...} 会执行n次,则时间复杂度是O(n); 像简单排序,冒泡排序,选择排序,有两层for循环,要执行NxN次,则时间复杂度是O(n^2);它们在排序时交换变量要用到一个临时变量作为临时存储空间,所以空间复杂度为O(1)。
时间复杂度与空间复杂度没有必然联系。但是也有以空间换时间或时间换空间的,此时,它们就会有影响。像散列法,用更多的空间,但时间会小于O(n)。
编码复杂度,是以研究求解问题规模与编码量关系为对象的,它关注的是用低编码量去实现同一个问题。就是想编写更少的代码,以实现同样的功能,这样可以提高开发效率,节约软件开发成本。