c语言度txt顺序,用C语言举例讲解数据结构中的算法复杂度结与顺序表.pdf

本文探讨了影响算法效率的主要因素,包括算法策略、输入规模、编译器和计算机性能。通过三个示例函数`sum1`、`sum2`、`sum3`的分析,展示了时间复杂度如何随问题规模n增长而变化,强调了在评估算法效率时关注最高次项的重要性。同时,也提及了空间复杂度的概念,指出`sum1`函数的空间复杂度高于`sum2`和`sum3`。
摘要由CSDN通过智能技术生成

用用C语语言言举举例例讲讲解解数数据据结结构构中中的的算算法法复复杂杂度度结结与与顺顺序序表表

数数据据结结构构算算法法复复杂杂度度

1、、影影响响算算法法效效率率的的主主要要因因素素

1)算法采用的策略和方法;

2 )问题的输入规模;

3 )编译器所产生的代码;

4 )计算机执行速度。

2、、时时间间复复杂杂度度

// 时间复杂度:2n + 5

long sum1(int n)

{

long ret = 0; \\1

int* array = (int*)malloc(n * sizeof(int)); \\1

int i = 0; \\1

for(i=0; i

{

array i] = i + 1;

}

for(i=0; i

{

ret += array i];

}

free(array); \\1

return ret; \\1

}

\\时间复杂度: n + 3

long sum2(int n)

{

long ret = 0; \\1

int i = 0; \\1

for(i=1; i<=n; i++) \\n

{

ret += i;

}

return ret; \\1

}

\\时间复杂度: 3

long sum3(int n)

{

long ret = 0; \\1

if( n > 0 )

{

ret = (1 + n) * n / 2; \\1

}

return ret; \\1

}

随着问题规模n的增大,它们操作数量的差异会越来越大,因此实际算法在时间效率上的差异也会变得非常明显!

判断一个算法的效率时,往往只需要关注操作数量的最高次项,其它次要项和常数项可以忽略。

在没有特殊说明时,我们所分析的算法的时间复杂度都是指最坏时间复杂度。

3、、空空间间复复杂杂度度

//空间复杂度:12 + n

long sum1(int n)

{

long ret = 0; \\4

int* array = (int*)malloc(n * sizeof(int)); \\4 + 4 * n

int i = 0; \\4

for(i=0; i

{

array i] = i + 1;

}

for(i=0; i

{

ret += array i];

}

free(array);

return ret;

}

\\空间复杂度: 8

long sum2(int n)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值