数据结构与算法零基础手把手教学笔记1

1、什么是数据结构?

数据结构是计算机存储、组织数据的方式。指相互之间存在一种或者多种特定关系的数据元素的集合。

2、什么是算法?

算法是定义好的计算过程,他取一个或者一组的值输入,并产生出一个或一组值作为输出。

 

首先先了解,时间复杂度空间复杂度

1、算法效率:如何衡量一个算法,主要从时间和空间两个维度来衡量的

计算时间复杂度:时间复杂度是一个函数。算法中基本操作的执行次数为算法的时间复杂度。

🔔实际中我们计算时间复杂度时候,其实我们不一定要计算精确的执行次数,而只需要大概的执行次数,因此这里我们使用:大O的渐进表示

2、大O的渐进表示

推导方法:

1、用常数1取代运行时间的加法常数

2、再修改后的运行次数函数中,只保留最高阶项

3、如果最高阶项存在且不是1,则去除这个项目相乘的常数。

😁一般情况下复杂度计算未知数时都用N,但是也可以是M、K等等其他的。

fa16ffb1ae9c44ad9990ef3674a8463c.png 

📵O(1)不是代表算法运行1次,是常数次。

 

strchr 语句:在字符串中查找一个字符

76767f7ed548451d935bf231f4c63076.png

 

O(1)最好的情况:任意输入规模最小的运行次数(下界)

O(N/2)平均情况:任意输入规模的期望运行次数

O(N)最坏的情况:任意输入规模最大的运行次数(上界)

所以说:当一个算法随着输入不同,时间复杂度不同,时间复杂度做悲观预期,看最坏的结果。

3、冒泡排序的时间复杂度

精确的看:N*(N-1)/2

时间复杂度:O(N^2)

算时间的复杂度,不能只看几层循环,而是去看他的思想。

4、二分查找

假设查找了X次,最终剩余1个数字,那说明总共数字有N个

N=1*(2^X),因此可知:

4dff2589205f4aa99aeabd65944a6588.png

二分查找是一个很厉害的算法。 

由此可以得出:二分查找的时间复杂度为:

5fcbeba4b4574dee92dc8bf6e059b9e3.png

 

空间复杂度

空间复杂度是一个算法在运行过程中临时占用存储空间大小的量度

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小奶盖儿月月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值