majian890324 发表于 2020-5-13 08:13:05

python的的数据结构和算法

昨天闲来无事,看到一个小视频,说的是python学到什么程度就可以去找工作了,那个人说熟悉python的数据结构和算法,就可以去找工作了{:5_109:} 我就去度娘了一下这两个东西,然并卵,毛都不懂呀,什么时间复杂度什么的都是个什么鬼?{:9_221:}

大佬们能能帮我说一下不,这个数据结构和算法到底是个什么玩意?{:9_241:}

不用太高深的那种,就随便说,大白话就行{:9_227:}

zltzlt 发表于 2020-5-13 08:14:48

本帖最后由 zltzlt 于 2020-5-13 08:23 编辑

数据结构就是能装各种数据的东西,例如列表、链表、二叉树、栈就是数据结构。

算法是可以解决某类问题的方法,例如快速排序算法、二分查找算法。

建议先扎实学好基础再去研究数据结构与算法,不然只会越学越懵

Twilight6 发表于 2020-5-13 08:32:34

本帖最后由 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)

数据结构和算法简单通俗点说就是为了找到最优的解决方案

苏格拉没有底呀 发表于 2020-5-13 09:02:16

建议把基础学好,你就算回了数据结构与算法又怎样?这仅仅是一块敲门砖,必备技能而已,你如果以后准备搞算法岗,确实需要好好学习(不过算法岗招的好像都是数学专业的大佬),还是老老实实搞项目吧,了解常见的一些算法就行

zwhe 发表于 2020-5-30 10:55:43

{:9_235:}
页: [1]
查看完整版本: python的的数据结构和算法