
Python
文章平均质量分 58
普通网友
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
多进程,多线程,协程,锁,线程池 概述
前言为什么我要写这篇文章呢,因为在我深入学习进程和线程这一章以前,我也是对于这个概念含含糊糊,知其然不知其所以然,我要告诉大家一个道理,会用和知道在特定业务场景下使用哪种合适是两回事,并不一定用了就会节约时间的噢进程进程:资源分配的最小单位线程:CPU调度的最小单位相信这两个概念大家都有所了解,但是有没有想过,什么是资源分配,什么又是CPU调度呢,我想给大家白话文的翻译一下我的理解资源分配:主机有一块内存,我一共就单核的1个G这麽大,这时候,我同时开了QQ,微信,微博和CSDN,每一个软件在你原创 2021-06-01 14:59:56 · 263 阅读 · 1 评论 -
数据结构:堆(建堆和堆排序的python实现)
前言这次我首先告诉大家堆的应用领域:TopK问题 、堆排序 、优先队列实现等为什么这次要先告诉大家,因为这次希望先思考和结合下你们刷题或者面试的过程中,是否实现和解决过上述问题,也许不是用堆的原理解决的,但都可以更快的加深你对堆这一概念的理解,那废话不多说,我们开始吧堆**堆栈:**这两个词虽然经常被放在一起说,但是其实它俩在数据结构和算法中都有不同形式的体现栈是用数据结构来实现的一种算法:数组,链表均可堆也是用数据结构来实现的一种算法:树,数组均可1.堆本身是一棵完全二叉树,下图记录了完全二原创 2021-05-26 17:35:38 · 1003 阅读 · 7 评论 -
算法:BFS(广度优先遍历)和DFS(深度优先遍历)
前言:在我的文章中介绍了二叉树,B+树,红黑树以及简单提到的AVL树,是不是所以的树都少不了一个方法,遍历全部节点,那遍历全部节点的方法底层到底是什么原理呢,下面就要给大家介绍咯BFS算法和DFS算法在介绍算法之前,大家先简单观察一下下图这颗二叉树,是不是很简单,下面的算法我们基于这颗树来为大家简单的概括BFS和DFS算法BFS:广度优先遍历从根节点开始一层一层,从左向右依次遍历,也就是637258原理思路:使用了队列先进先出的原理,先进去的节点先出来,并且每个节点假如有左右子树,都会在队列末原创 2021-05-25 18:58:15 · 409 阅读 · 8 评论 -
数据结构:手撕红黑树(python方式)
前言:不知道同学有没有看完昨天的B树和B+树,虽说那个B+树在面试中很少被要求手写,但是有一个常考的考点,红黑树,可以一个经常被问到的知识噢,那么今天,我就来跟大家一起手撕红黑树!红黑树说到红黑树不得不先提一下AVL树(平衡二叉搜索树),不了解AVL树的同学可以自行查询相关文献,然后回来以后,请回答我的两个问题:红黑树和AVL树的区别是什么?1.附上红黑颜色属性,通过颜色控制树的平衡2.相对于AVL树来说,没有那么严格的要求平衡3.插入和删除的复杂度和次数较AVL来说,跟随着数量节点的增大,越原创 2021-05-24 18:49:40 · 1178 阅读 · 3 评论 -
数据结构:基于Python的二叉搜索树实现,以及前中后序遍历
二叉搜索树(BST)在学习本篇之前,需要从书籍或者资源中了解下二叉树的基本结构,以及特点。二叉树包括:根结点,左子树,右子树二叉树的基础遍历方式分为三种:遍历方式遍历顺序前序遍历根 左子树 右子树中序遍历左子树 根 右子树后序遍历左子树 右子树 根特点:结点的左子树一定小于当前结点的值,右子树一定大于当前结点的值知道以上的内容,那我们下面基于这个特点,来构建一棵二叉搜索树,抛弃暴力建树过程,用优雅的方式体验算法的奥妙Python实现二叉搜索树# 树节原创 2021-05-21 16:45:14 · 223 阅读 · 0 评论 -
数据结构:基于python的栈实现
栈特点:先进后出新手可以先学习下栈的概念,然后从实例中理解栈的应用栈的应用(引用此文)Python实现栈# 双端队列(链表式)实现栈# 继承双端队列,即可简单通过链表形式实现栈,看不懂的同学可以温习我的文章双端队列和双端循环链表的实现# 底层其实就是已链表形式实现进栈出栈from queue import DoubleQueueclass Stack(DoubleQueue): def push(self, value): self.queue_append(原创 2021-05-08 16:26:32 · 178 阅读 · 0 评论 -
数据结构:基于python的队列实现
队列特点:先进先出队列实现方式:顺序队列基于数组实现:可以给队列设置最大长度限制,假如队列长度超出最大限度,可以基于拒绝反馈,可以有效避免多请求等待的情况链式队列基于链表实现:链式队列可以无限拓展队列长度,对于快速得到响应的系统不太适用队列的理解可以参考这位博主概解Python实现队列# 数组实现队列class Queue(object): def __init__(self, max_length=10): self.max_length = max_原创 2021-05-07 18:06:05 · 176 阅读 · 0 评论 -
When-Change:看门狗
When-Change节省大量重新运行shell,python脚本的时间,当监测的文件发生改变时,将被监测到并重新运行,类似于热更新的原理看门狗简单教学(转载),点此处传送创建python脚本:whenchange.pyimport os#调用Linux的开门狗,实时监测,在改变代码时save以后,重新运行,配合pytest使用os.system("when-changed -v -r -1 . pytest singlelink.py")使用python脚本使用when-Change 去原创 2021-04-28 17:19:17 · 214 阅读 · 0 评论 -
Pytest
Pytest给大家推荐一个好用的python单元测试框架:pytest,支持断点assert操作#安装pytestpip install pytest#安装pytest-html>pip install pytest-html#运行pytest命令(可加各参数,有不同意思,此处不拓展)pytest + 文件名,例:pytest singlelink.py#将测试结果生成html(默认自动找test_开头的py文件)pytest --html=report.html#将测试结果生成h原创 2021-04-26 18:35:26 · 106 阅读 · 0 评论