精华内容
下载资源
问答
  • python数据结构与算法

    2019-12-03 13:49:48
    课程链接【点这里】 配套的全部课件源码 链接:https://pan.baidu.com/s/1DbNXI1W_i8gni1Fqz6CWbQ 提取码:p7mu 给我点个关注 就是对我最大的支持

    课程链接【点这里
    配套的全部课件源码
    链接:https://pan.baidu.com/s/1DbNXI1W_i8gni1Fqz6CWbQ
    提取码:p7mu

    给我点个关注 就是对我最大的支持

    展开全文
  • Python数据结构与算法视频教程

    千人学习 2018-06-02 10:27:16
    Python数据结构与算法视频培训教程:本课程内容包含了程序员常用的数据结构知识,涉及快速排序、树与二叉树、堆、堆排序、图的概念与遍历、Python常用的内置算法与数据结构等开发知识。数据结构和算法是每个程序员...
  • Python数据结构与算法 1. 引入概念 1.1. 第一次尝试 1.2. 算法的提出 1.3. 第二次尝试 1.4. 算法效率衡量 1.5. 算法分析 1.6. 常见时间复杂度 1.7. Python内置类型性能分析 1.8. 数据结构 2. 顺序表 2.1. 顺序表的...

    数据结构与算法(Python)

    在这里插入图片描述
    Python数据结构与算法
    1. 引入概念
    1.1. 第一次尝试
    1.2. 算法的提出
    1.3. 第二次尝试
    1.4. 算法效率衡量
    1.5. 算法分析
    1.6. 常见时间复杂度
    1.7. Python内置类型性能分析
    1.8. 数据结构
    2. 顺序表
    2.1. 顺序表的形式
    2.2. 顺序表的结构与实现
    2.3. 顺序表的操作
    2.4. Python中的顺序表
    3. 链表
    3.1. 单向链表
    3.2. 单项循环链表
    3.3. 双向链表
    4. 栈
    4.1. 栈结构实现
    5. 队列
    5.1. 队列的实现
    5.2. 双端队列
    6. 排序与搜索
    6.1. 冒泡排序
    6.2. 选择排序
    6.3. 插入排序
    6.4. 快速排序
    6.5. 希尔排序
    6.6. 归并排序
    6.7. 常见排序算法效率比较
    6.8. 搜索
    7. 树与树算法
    7.1. 二叉树
    7.2. 二叉树的遍历

    Why?

    我们举一个可能不太恰当的例子:

    如果将最终写好运行的程序比作战场,我们码农便是指挥作战的将军,而我们所写的代码便是士兵和武器。

    那么数据结构和算法是什么?答曰:兵法!

    我们可以不看兵法在战场上肉搏,如此,可能会胜利,可能会失败。即使胜利,可能也会付出巨大的代价。我们写程序亦然:没有看过数据结构和算法,有时面对问题可能会没有任何思路,不知如何下手去解决;大部分时间可能解决了问题,可是对程序运行的效率和开销没有意识,性能低下;有时会借助别人开发的利器暂时解决了问题,可是遇到性能瓶颈的时候,又不知该如何进行针对性的优化。

    如果我们常看兵法,便可做到胸有成竹,有时会事半功倍!同样,如果我们常看数据结构与算法,我们写程序时也能游刃有余、明察秋毫,遇到问题时亦能入木三分、迎刃而解。

    故,数据结构和算法是一名程序开发人员的必备基本功,不是一朝一夕就能练成绝世高手的。冰冻三尺非一日之寒,需要我们平时不断的主动去学习积累。

    通过三天的学习,我们希望让大家能理解其概念,掌握常用的数据结构和算法。

    展开全文
  • g = filter(lambda x : x >=0, data) 在python3中,得到的是构造器,要用list才可以得到结果 list(g)
  • Python数据结构与算法面试(上)

    千人学习 2019-09-18 11:49:44
    Python数据结构与算法面试》系列课程不仅详细讲解了数据结构的核心知识点,也同样可以用于相关领域的面试准备,因为本系列课程中包含了大量各大厂的面试原题,以及经过改进的题目。 这一系列课程主要包括如下内容...
  • Github:Python数据结构与算法 栈 Stack 栈stack维持了数据项后进先出LIFO的次序 书写表达式的方法有前缀prefix,中缀infix,后缀postfix,由于栈具有次序反转的特性,所以栈结构适合用于开发表达式求值和转换...

    线性结构总结

    栈、队列、双端队列、链表以及其应用


    栈 Stack

    栈stack维持了数据项后进先出LIFO的次序

    书写表达式的方法有前缀prefix,中缀infix,后缀postfix,由于栈具有次序反转的特性,所以栈结构适合用于开发表达式求值和转换算法


    队列 queue

    队列queue维持了数据项先进先出FIFO的次序

    “模拟系统”,利用队列可以对一个现实问题进行抽象


    双端队列 dequeue


    链表

    展开全文
  • Python数据结构与算法(10)---二进制数据结构Struct

    万次阅读 热门讨论 2021-04-19 12:20:29
    目录前言 前言 在C/C++语言中,struct被称为结构体。而在Python中,struct是一个专门的库,用于处理字节串原生Python数据结构类型之间的转换。

    二进制数据结构Struct

    在C/C++语言中,struct被称为结构体。而在Python中,struct是一个专门的库,用于处理字节串与原生Python数据结构类型之间的转换。

    本篇,将详细介绍二进制数据结构struct的使用方式。

    函数与Struct类

    struct库包含了一组处理结构值得模块级函数,以及一个Struct类。格式指示符将由字符串格式转换为一种编译表示,这与处理正则表达式得方式类似。

    这个转换会耗费一些资源,所以创建一个Struct实例并再这个实例上调用方法时,只完成一次转换,往往会更高效。

    打包

    Struct支持使用格式指示符将数据打包为字符串,另外支持从字符串解包数据,格式指示符由表示数据类型的字符串和可选的数量及字节序指示符构成。

    下面,我们来打包一个元组,将其转换为16进制字节序列,示例如下:

    import struct
    import binascii
    
    values = (2, 'lyj'.encode('UTF-8'), 3.8)
    s = struct.Struct('I 3s f')
    packed_data = s.pack(*values)
    print("原值:", values)
    print("格式指示符:", s.format)
    print("大小:", s.size, 'bytes')
    print("打包值:", binascii.hexlify(packed_data))
    

    运行之后,效果如下:

    打包

    这里的格式指示符为“I 3s f”。前面介绍array数组时,我们已经列出过一个表格。其中I标识一个整型或长整型,3s表示3个字节字符串(lyj),f表示浮点数。

    解包

    struct库使用unpack()可以从打包的表示数据中抽取数据,这里直接复制上面的打包值,进行测试。示例如下:

    import struct
    import binascii
    
    packed_data = binascii.unhexlify(b'020000006c796a0033337340')
    s = struct.Struct('I 3s f')
    unpacked_data = s.unpack(packed_data)
    print("解包值:", unpacked_data)
    

    运行之后,效果如下:

    解包

    虽然使用unpack()解包基本会得到相同值,但浮点数的值有微小的差别。

    字节序指示符

    默认情况下,值会使用原生C库的字节序(endianness)来编码。Struct的字节序指示符如下表所示:

    代码 含义
    @ 原生顺序
    = 原生标准
    < 小端
    > 大端
    ! 网络顺序

    示例如下:

    import struct
    import binascii
    
    values = (2, 'lyj'.encode('UTF-8'), 3.8)
    endianness = [
        ('@', '原生顺序'),
        ('=', '原生标准'),
        ('<', '小端'),
        ('>', '大端'),
        ('!', '网络顺序'),
    ]
    for code, name in endianness:
        s = struct.Struct(code + ' I 3s f')
        packed_data = s.pack(*values)
        print("格式化字符串:", s.format, ' for ', name)
        print("大小:", s.size, 'bytes')
        print("打包:", binascii.hexlify(packed_data))
        print("解包:", s.unpack(packed_data))
    

    运行之后,效果如下:
    字节序

    如果想改变字节序来编码,如上面代码所示,只需要改变格式串中提供一个显式的字节序指令,就可以很容易地覆盖这个默认选择。

    缓冲区

    通常在强调性能的情况下或者向扩展模块传入或传出数据时才会处理二进制打包数据。

    为了避免为每个打包结构分配一个新缓冲区所带来的开销,通常情况下,我们使用pack_into()和unpack_from()方法支持直接写入预分配的缓冲区。

    示例如下:

    import struct
    import binascii
    import ctypes
    import array
    
    values = (2, 'lyj'.encode('UTF-8'), 3.8)
    s = struct.Struct('I 3s f')
    print("原始值:", values)
    b = ctypes.create_string_buffer(s.size)
    print("打包之前(缓冲区的值):", binascii.hexlify(b.raw))
    s.pack_into(b, 0, *values)
    print("打包之后(缓冲区的值):", binascii.hexlify(b.raw))
    print("解包:", s.unpack_from(b, 0))
    
    a = array.array('b', b'\0' * s.size)
    print("打包之前(缓冲区的值):", binascii.hexlify(a))
    s.pack_into(a, 0, *values)
    print('打包之后(缓冲区的值):', binascii.hexlify(a))
    print("解包:", s.unpack_from(a, 0))
    

    运行之后,效果如下:

    缓冲区

    这里通过两种方式,创建缓冲区。其中size属性用于指出缓冲区需要的大小。

    展开全文
  • python数据结构与算法总结

    万次阅读 多人点赞 2019-04-24 09:48:14
    python常用的数据结构与算法就分享到此处,本月涉及数据结构与算法的内容有如下文章: 《数据结构算法python意味着什么?》 《顺序表数据结构python中的应用》 《python实现单向链表数据结构及其基本方法》...
  • 图解Python数据结构与算法-实战篇

    千人学习 2020-06-03 21:33:00
    数据结构与算法一直是编程的核心,本课程将结合面试常考 leetcode 网站真题作为讲解, 带领Python新手将所学到的数据结构算法知识应用到实战当中。
  • Python数据结构与算法视频培训教程:本课程内容包含了程序员常用的数据结构知识,涉及快速排序、树与二叉树、堆、堆排序、图的概念与遍历、Python常用的内置算法与数据结构等开发知识。数据结构和算法是每个程序员...
  • 本文实例讲述了Python数据结构与算法之图的广度优先深度优先搜索算法。分享给大家供大家参考,具体如下: 根据维基百科的伪代码实现: 广度优先BFS: 使用队列,集合 标记初始结点已被发现,放入队列 每次循环从...
  • 这次推荐的课程是北京大学陈斌老师的《python数据结构与算法》 一共有87个视频, 已经听了30+, 适合起步阶段对数据结构算法有基本的认识, 是入门python编程的一门比较好的系列课程. 我对时间复杂度O 能有更好的...
  • Basic Data Structures第1章 基本数据结构 Objectives 学习目标 To understand the abstract data types stack, queue, deque, andlist.To be able to implement the ADTs stack, queue, and deque ...
  • python语言相对来说,更容易入门掌握,通过python学习数据结构与算法,对于初学者似乎更加的友好。 本篇,首先介绍的是枚举类型。在python库中,提供了枚举模块enum。通过该模块,我们可以定义程序员容易理解的...
  • python数据结构与算法1: BF算法

    千次阅读 2017-07-24 19:05:48
    # -*- coding: utf-8 -*- """ BF algoritm To count the string numer appears in another string. Author @Eric Lv e-mail: Eric2014_Lv@sjtu.edu.cn """# the main string t = "this is a big appleappl,this is a
  • python 数据结构与算法——并查集

    千次阅读 2020-01-09 22:49:55
    并查集的原理及 python实现
  • 1)数据结构与算法的理论,包括复杂度的思想,从线性表开始(链表,栈和队列),然后是数组和字符串的初级理论和题目(双指针);查找算法中深刻理解二分查找及哈希查找。 2)接下来打算学习树及二叉树相关姿势...
  • python 数据结构与算法——链表

    千次阅读 2020-01-07 20:52:15
    链表 如何检测链表有环?——快慢指针 如何找出链表中倒数第k个元素?——遍历时使用额外指针记录当前位置前第k个元素 如何找出链表中间的元素?——快慢指针 栈 ...
  • 0. 数据结构定义 堆栈:list 原生即可支持堆栈操作: list.append():入栈; list.pop():出栈; not list:堆栈是否为空; 链表节点: class ListNode(object): def __init__(self, x): ...
  • = u,C 结构的定义在 naive_krustal 中 return u # 并 def naive_union(C, u, v): u = naive_find(C, u) v = naive_find(C, v) C[u] = v def naive_kruskal(G): E = [(G[u][v], u, v) for u in G for v in G...
  • 队列的python实现 在建立抽象数据类型之后,可以建立一个类来实现队列的。和以前一样,我们采用python内置的列表作为工具来建立队列类。 队列也是有序的,所以需要决定队列的哪一头作为队列的前端和尾端。在下面的...
  • python 数据结构与算法——分治法

    千次阅读 2020-01-15 16:29:00
    主定理 分治法的核心是 主定理 分治法举例 二分查找 归并排序、快速排序 等等 分治法的优化 当子问题有重叠时,可以通过缓存来减少重复计算,参见 《python 数据结构与算法——动态规划》
  • python数据结构与算法 22 递归图形

    千次阅读 2014-03-26 16:20:29
    递归图形 上节中我们已经知道有些问题,如果用递归解决变得非常容易。但是仍然很难在大脑里形成一种模型或可视化的...我们要用的工具是python的图形模块turtle,这个模块伴随python的全部版本而且很容易使用,语法也简
  • 宾斯基三角形说明了一种三通递归算法。这种图形手绘非常简单。从一个大三角形开始,连接三个边的中点,把三角形分成4个。不管中间的三角形,把其余三个再次应用前述的过程。每一次都新建一些三角形,再把每个同样的...
  • 题目内容: 开心消消乐我们都熟悉,我们可以用刚学过的栈来做一个“一维”的开心消消乐游戏,...print(''.join(checkstr.items)) main() 题目来自中国大学MOOC中北京大学陈斌副教授的MOOC:《数据结构与算法Python版》

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 195,478
精华内容 78,191
关键字:

python数据结构与算法

python 订阅
数据结构 订阅