算法效率:算法效率分析分为两种,第一种是时间效率,第二种是空间效率
时间复杂度的概念:算法中的基本操作的执行次数,为算法的时间复杂度
空间复杂度的概念:一个算法在运行过程中临时占用存储空间大小的量度
如何计算时间复杂度:
1.用常数1取代运行时间中的所有加法常数
2.在修改后的运行次数函数中,只保留最高阶项
3.如果最高阶项存在且不是1,则去除这个项相乘的常数
另外某些算法存在最好,平均和最坏情况:
最坏情况:任意输入规模的最大运行次数
平均情况:任意输入规模的期望运行次数
最好情况:任意输入规模的最小运行次数
例如:在一个长度为N数组中搜索一个数据
最好情况:1次找到
最坏情况:N次找到
平均情况:N/2次找到
当算法存在这三种情况的时候,看最坏运行情况
O(1)<O(logN)<O(N)<O(nlogN)<O(N^2)<O(2^N)<O(N!)