【数据结构与算法】三 █算法复杂度█ 一 时间复杂度
上一篇文中提到反转 ,并通过一个小的算法实现了功能,当时的数组长度不到10,那么有几个不同的数组,我们怎么来判断算法在不同数组上所花费的时间与性能优越呢…
一个算法的评价主要从时间复杂度和空间复杂度来考虑。
时间复杂度 T(n)
n称为问题的规模,当n不断变化时,时间频度T(n)也会不断变化。
一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度。
我们以上篇中的算法为例进行说明
void reverse(T& array){
int left = 0;
int right = getArrayLen(array) - 1