算法基础1

概念:

数据结构

Data Structure

存储数据的不同方式

计算机作为一门工程学科,容易理解,做出东西来,比死板的背概念要重要的多。

 

什么是算法?

针对同一个问题,不同的解决方法

 

比如从1到100求和,可以从1到100累加,也可以1+100  乘以50

 

扫描二维码关注公众号,回复: 5575151 查看本文章

如何测算算法的优劣?

 

时间测算

完成同样的结果,用的时间越短,算法越好。

 

空间测算

如果解决问题需要额外的空间,也就是不包括存储数据的空间,占的空间越少,这个算法越好。

算法耗时的通常计算方法。

在学术上如何来表述一个算法的优劣呢?

Big O

用来标记时间的复杂程度

什么是时间复杂度?

计算机解决一个问题,执行的时间,随着问题规模的扩大,时间是怎么变化的。

访问数组某个位置的值,随着规模的扩大,所用的时间是怎么变化的。

由于数组访问某个位置,只需要计算偏移量就行了,查询第10个和查询第1000个,都是计算偏移量需要花的时间。

我们把这种问题的时间复杂度 表示为O(1)

 

计算时间复杂度的时候,我们只计算随着规模的扩大,所需要的时间,不考虑必要的操作,比如循环,赋初始值。

 

访问链表某个位置的值

 

如果我们访问链表的第一个,那么时间复杂度还是O(1)

但是我们说时间复杂度,一般是讲“最差”的情况

如果访问第一个需要1s,那么访问第10个需要10s,我们把这种问题的时间复杂度表示为O(n)

就是说,当问题的规模扩大的时候,消耗的时间是线性的扩大。

 

时间复杂度就是 时间针对于问题规模的变化,而进行变化的规律

求数组平均数的时间复杂度

算法是先累加求和,然后除以数组长度

随着数组的增大,需要累加的数会增多,所以时间复杂度为O(n)

作业

下一节:

排序算法

(课程在马士兵微博)

猜你喜欢

转载自blog.csdn.net/qq_41656943/article/details/88627426