自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 基于python实现生产者与消费者实例-多线程获取儒林外史电子书

基于python实现生产者与消费者实例-多线程获取儒林外史电子书

2022-11-20 20:03:26 163 1

原创 基于python实现生产者消费者模型

生产者和消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一个存储空间,生产者往存储空间中添加产品,消费者从存储空间中取走产品,当存储空间为空时,消费者阻塞,当存储空间满时,生产者阻塞。print("\t------ %s 消费:[%s] 仓库的库存:%d ------" % (self.name, msg, storage_queue.qsize()))# 当仓库没满,生产者就生产产品。# 当仓库非空,消费者就消费产品。"""生产者线程""""""消费者线程"""

2022-11-08 11:43:23 735

原创 Git 基本用法总结

基本关系如下:开发:1. git clone ssh(项目的ssh) --->默认对应的是master分支2. 同步分支:<1> git checkout -b web <创建并切换到自己的分支><2> git push origin web <本地分支推送到远程><3> git branch --set...

2018-11-21 16:45:38 671

原创 排序算法之桶排序

在我们生活的这个世界中到处都是被排序过的。站队的时候会按照身高排序,考试的名次需要按照分数排序,网上购物的时候会按照价格排序,电子邮箱中的邮件按照时间排序……总之很多东西都需要排序,可以说排序是无处不在。现在我们举个具体的例子来介绍一下排序算法。首先出场的我们的主人公小哼,上面这个可爱的娃就是啦。期末考试完了老师要将同学们的分数按照从高到低排序。小哼的班上只有5个同学,这5个同学分

2017-10-10 20:10:04 207

原创 排序算法之快速排序

快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。步骤为:1. 从数列中挑出一个元素,称为"基准"(pivot),2. 重新排序数列

2017-10-06 23:46:26 255

原创 排序算法之插入排序

插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。代码实现:# coding = utf-8def insert_sort(alist):    # 计算列表长

2017-10-06 22:38:31 191

原创 排序算法之选择排序

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移

2017-10-06 18:20:07 220

原创 排序算法之冒泡排序

冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。冒泡排序算法的运作如下:1. 比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。2. 对每一

2017-10-06 16:49:17 403

原创 Python 实现对列

队列(queue):队列是先进先出(FIFO, First-In-First-Out)的线性表,在具体应用中通常用链表或者数组来实现,队列只允许在后端(称为rear)进行插入操作,在前端(称为front)进行删除操作,队列的操作方式和堆栈类似,唯一的区别在于队列只允许新数据在后端进行添加。如图所示:代码实现:# coding = utf-8class MyQ

2017-10-06 12:11:01 403

原创 Python实现栈

栈(stack) :栈又称之为堆栈是一个特殊的有序表,其插入和删除操作都在栈顶进行操作,并且按照先进后出,后进先出的规则进行运作。如下图所示:                                                    代码实现:# coding = utf-8class Stack(object):    def __in

2017-10-06 11:37:05 433

原创 Python实现双向链表的基本操作

双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。代码实现:# coding = utf-8# 定义节点类class Node(object):   def __init__(self, data):      

2017-10-05 18:26:05 4400

原创 基于Python单向循环链表实现尾部、任意位置添加,删除

# coding = utf-8# 定义节点类class Node(object):    def __init__(self, data):        # 定义数据域        self.data = data        # 定义指向域        self.next = None# 定义单向循环链表类class Single_Circle(

2017-10-05 00:24:47 1493

原创 基于Python单向链表实现尾部、任意位置添加,删除

# coding = utf-8# 创建节点类class Node(object):    def __init__(self, data):        # 定义指向域        self.next = None        # 定义数据域        self.data = data# 创建指向类class LinkDict(object):

2017-10-04 20:42:46 2867 1

原创 Python实现二分查找

二分查找:二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子

2017-10-02 21:05:25 282

原创 flask 知识点总结

Flask框架学习总结Flask的特点轻量、简洁、扩展性强常用的扩展包:wtf、sqlalchemy、login、script、migrate、mail创建虚拟环境:mkvirtualenv 创建虚拟环境,workon 进入虚拟环境,deactivate退出虚拟环境删除虚拟环境:rmvirtualenv 安装依赖包:pip  install -r requirements.

2017-09-29 23:06:27 1223

转载 知乎上对理解阻塞非阻塞与同步异步的有趣解释

今天逛知乎的时候看到了一篇关于阻塞非阻塞和同步异步的一个有趣解释,把它copy了下来,为以后迷糊的时候看看。老张爱喝茶,废话不说,煮开水。出场人物:老张,水壶两把(普通水壶,简称水壶;会响的水壶,简称响水壶)。1 老张把水壶放到火上,立等水开。(同步阻塞)老张觉得自己有点傻2 老张把水壶放到火上,去客厅看电视,时不时去厨房看看水开没有。(同步非阻

2017-09-26 17:45:39 245

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除