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

目录

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)表示法 ,希望看这篇文章的同学都能够有所收获,小编在这里谢谢大家的耐心观看,一起进步,一起加油!

相关推荐
FMRbpm30 分钟前
用队列实现栈
数据结构·c++·新手入门
fei_sun36 分钟前
【数据结构】2021年真题
数据结构
立志成为大牛的小牛1 小时前
数据结构——五十九、冒泡排序(王道408)
数据结构·学习·程序人生·考研·算法
papership1 小时前
【入门级-数据结构-3、特殊树:完全二叉树的定义与基本性质】
数据结构·算法
立志成为大牛的小牛1 小时前
数据结构——六十、快速排序(王道408)
数据结构·程序人生·考研·算法·排序算法
量子炒饭大师1 小时前
一天一个计算机知识——【编程百度】向上取整
c语言·数据结构·c++·git·github
子一!!1 小时前
数据结构==B-树==
数据结构·b树
带鱼吃猫2 小时前
数据结构:单链表 / 双链表的结构、接口实现与顺序表对比
数据结构·链表
for_ever_love__3 小时前
二插堆的基本原理以及简单实现
数据结构
月明长歌3 小时前
【码道初阶】【LeetCode 150】逆波兰表达式求值:为什么栈是它的最佳拍档?
java·数据结构·算法·leetcode·后缀表达式