数据结构(一)数据结构与算法

算法

算法是一系列程序指令,用于处理特定的运算和逻辑问题。
例:1+2+3...+100

int i, sum=0, n=100;
for(i = 1; i <=n; i++){
	sum = sum + i;
}
printf("%d", sum);

等差数列:Sn=( a1 + an ) * n /2 = n* a1+n * (n-1) * d/2

int i, sum = 0, n=100;
sum = ( 1 + n ) * n /2;
printf("%d", sum);
  • 算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
  • 算法的五个基本特性:输入、输出、有穷性、确定性、可行性。
  • 算法的设计要求:正确性、可读性、健壮性、高效率、低存储量。

时间复杂度 T(n)=O(f(n))

渐进时间复杂度: 若存在函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不
等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称
为O(f(n)),O为算法的渐进时间复杂度,简称为时间复杂度。

————时间复杂度就是把程序的相对执行时间函数T(n)简化为一个数量级,这个数量级可以是n、n
2、n3等。

O(1)常数阶、O(n)线性阶、O(n²)平方阶、O(logn)对数阶

推导大O阶方法:

  1. 用常数1取代所有加法常数;
  2. 只保留最高项;
  3. 如果最高阶存在且不是1,则去除掉最高阶项前面的系数。

得到的结果就是大O阶。

对数阶:
在这里插入图片描述

2^x=n,得到x=log2n。

在这里插入图片描述
最坏情况与平均情况,没有特殊说明的情况下都指最坏时间复杂度

空间复杂度 S(n)=O(f(n))

对一个算法在运行过程中临时占用存储空间大小的量度。n为问题的规模,f(n)为算法所占用存储空间的函数。

递归操作的空间复杂度也是线性的,如果递归的深度是n,那么空间复杂度就是O(n)。

1. 衡量算法优劣的主要标准是时间复杂度和空间复杂度。
2. 数据结构是数据的组织、管理和存储格式,其使用目的是为了高效
地访问和修改数据。
3. 时间复杂度是对一个算法运行时间长短的量度,用大O表示,记作
T(n)=O(f(n))。
4. 空间复杂度是对一个算法在运行过程中临时占用存储空间大小的量
度,用大O表示,记作S(n)=O(f(n))。其中递归算法的空间复杂度和递归深度成正比。
posted @   jusaka_m  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示