博主回归!数据结构篇启动

目录

1>>闲话

2>>数据结构前言

3>>复杂度的概念

4>>时间复杂度

5>>大O渐进表示法

6>>总结


1>>闲话

家人们好久不见,小编军训终于是结束了,大一事情太多了,这几天没时间健身,没时间学习,也没时间发博客,在这先跟大家说声对不起! ,忙着各种开会、讲座、竞选、运动会、社团、部门等等,不过从今天开始,小编应该会周更2-3篇,直到学完数据结构c语言的后续章节可能会在国庆节补出来 ,敬请期待!谢谢!

2>>数据结构前言

很多小白肯定跟我学之前一样,不理解:什么是数据结构?为什么要学数据结构?数据结构和算法有啥子区别? 这几个问题不难回答:
第一:数据结构是计算机存储数据,管理数据的方式,比如数组存数据,我们可以通过循环一次性处理数组里的数据,这就是数据结构

第二:学习数据结构能让我们具有一些解决复杂问题的能力,通常复杂的问题数据量都很大,那么管理数据成了难题,故学习了数据结构就可以又快又方便的管理数据

第三:算法就是定义良好的计算过程,通俗点讲就是一系列的计算步骤,通过优质的算法快速的解决过程,再用优质的数据结构快速管理数据 ,那么在难的题 都如同庖丁解牛,迎刃而解

3>>复杂度的概念

一般衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,(插闲话:小编爱看玄幻小说,很多主角技能厉害的也跟时间空间相关,所以小编在想,如果我们算法可以一直往高处学,没有上界,那么我们能不能通过代码突破时空从而升维,哈哈哈这只是一个想法,要实现那肯定务必要学精算法!小编会努力的!)也就是时间复杂度和空间复杂度!

时间复杂度是衡量一个算法运行的快慢

空间复杂度是衡量一个算法运行所需要的额外空间

不过现在一般不怎么看空间复杂度,因为我们现在不管是电脑还是手机,内存和外存(硬盘)都很大了。但是我们还是要学,接下来我们一起来看看:

4>>时间复杂度

时间复杂度是一个函数式子T(N),它描述了该算法的运行时间,肯定有人跟我有一样的疑问,为什么不直接计算程序运行时间呢? 首先,编译器的新旧程度会影响运算的快慢,其次,处理器的好坏也会影响运算的快慢(跟你打游戏卡不卡一个道理),再者,我们只有写完程序才能知道运行时间。因此:不能直接计算,引入T(N)概念:

T(N)是计算了程序的运行次数。我们在这里要进行抽象的概念,假设每条语句的执行时间是一样的 ,不管你是a=1还是a=10000000^1000等等,都基本一样(实际有一内内区别),那么我们能知道你运行次数越多,那么运行时间越大 。那么同样一题,答案运行次数少的算法一定是比运行次数多的算法来的好的。

这个代码它的时间复杂度T(N)=N;

5>>大O渐进表示法

有三条规则分别是:

1.时间复杂度T(N)中要抓大头,什么意思呢?也就是保留高阶项,去掉低阶项,如果T(N)=N^2+N+234那么O(N)=N^2

2.高阶项常数系数忽略不计,如果T(N)=12312N^2+N+234那么还是O(N)=N^2, 为什么呢?很多同学在这有疑问,因为当N无穷大时,它的常数系数多少乘它都显得苍白无力

3.若T(N)中只有常数项,那么用常数1取代,如果T(N)=123121212312,那么O(N)=1,这里不管常数多大,结果都是1。

来看一道例题:

这里每调用一次函数,运行次数就加1,那么根据图片我们能看出它是N!执行次数就是N次,所以O(N)就等于1;

通常我们说的时间复杂度都是使用O(N)而不是T(N)

6>>总结

今天小编就学了这么多,总结一下就是了解了数据结构以及复杂度、算法的概念,学习了时间复杂度T(N)的计算方法,以及O(N)表示法 ,希望看这篇文章的同学都能够有所收获,小编在这里谢谢大家的耐心观看,一起进步,一起加油!

相关推荐
qystca6 分钟前
洛谷 P11242 碧树 C语言
数据结构·算法
冠位观测者13 分钟前
【Leetcode 热题 100】124. 二叉树中的最大路径和
数据结构·算法·leetcode
XWXnb616 分钟前
数据结构:链表
数据结构·链表
悲伤小伞18 分钟前
C++_数据结构_详解二叉搜索树
c语言·数据结构·c++·笔记·算法
hnjzsyjyj2 小时前
“高精度算法”思想 → 大数阶乘
数据结构·高精度算法·大数阶乘
Aileen_0v09 小时前
【AI驱动的数据结构:包装类的艺术与科学】
linux·数据结构·人工智能·笔记·网络协议·tcp/ip·whisper
是小胡嘛9 小时前
数据结构之旅:红黑树如何驱动 Set 和 Map
数据结构·算法
yuanManGan11 小时前
数据结构漫游记:静态链表的实现(CPP)
数据结构·链表
2401_8582861115 小时前
115.【C语言】数据结构之排序(希尔排序)
c语言·开发语言·数据结构·算法·排序算法
猫猫的小茶馆15 小时前
【数据结构】数据结构整体大纲
linux·数据结构·算法·ubuntu·嵌入式软件