python的的数据结构和算法
昨天闲来无事,看到一个小视频,说的是python学到什么程度就可以去找工作了,那个人说熟悉python的数据结构和算法,就可以去找工作了{:5_109:} 我就去度娘了一下这两个东西,然并卵,毛都不懂呀,什么时间复杂度什么的都是个什么鬼?{:9_221:}大佬们能能帮我说一下不,这个数据结构和算法到底是个什么玩意?{:9_241:}
不用太高深的那种,就随便说,大白话就行{:9_227:} 本帖最后由 zltzlt 于 2020-5-13 08:23 编辑
数据结构就是能装各种数据的东西,例如列表、链表、二叉树、栈就是数据结构。
算法是可以解决某类问题的方法,例如快速排序算法、二分查找算法。
建议先扎实学好基础再去研究数据结构与算法,不然只会越学越懵 本帖最后由 Twilight6 于 2020-5-13 08:55 编辑
时间复杂就是执行算法所需要计算的工作量,简单点说就是代码执行次数
时间复杂度基本运算规则:
顺序相加,循环相乘,常数取1,分支取最大,
举个例子:
def func(n):
ls = []
for i1 in range(n): # 这边循环 n 次
for i2 in range(n):# 当i1等于某个值时,这边也要循环 n 次
if (i1) % 2 == 0 and i2 % 3 == 0:# 这边是分支结构,条件判断两次,and一次
ls.append(i1*i2)# 加入列表一次,if分支一共4次
else: # else分支若if条件成立,这里就不会执行,如果执行了 每次循环时执行1次
continue# 这里也是执行每次循环执行1次
count = 5
while count > 0 : # 这边循环5次
count -= 1
return ls # 最后返回一次
最坏时间复杂度就是执行程序时最坏情况需要执行的工作量,或者是是次数,反之最优是最少工作量,或者次数最少
上面的例子:
最坏时间复杂度就等于 f(n)=n*n*4 + 5
最优时间复杂度就等于 f(n)=n*n*2 + 5
一般来说直接讲时间复杂度就是指最坏时间复杂度,通常可以只看最高次幂项
所以这里的最坏和最优时间复杂度都为 f(n)=n*n= O(n^2)
数据结构和算法简单通俗点说就是为了找到最优的解决方案
建议把基础学好,你就算回了数据结构与算法又怎样?这仅仅是一块敲门砖,必备技能而已,你如果以后准备搞算法岗,确实需要好好学习(不过算法岗招的好像都是数学专业的大佬),还是老老实实搞项目吧,了解常见的一些算法就行 {:9_235:}
页:
[1]