- 博客(8)
- 收藏
- 关注
原创 python之多线程
多线程 GIL 全局解释器锁,保证同一时刻只有一个线程可以执行代码。 GIL是一个历史遗留问题,主要出现在C语言解释器上,导致python的多线程是伪多线程。 虽然Python的多线程是伪多线程,计算密集型任务单线程比多线程快,IO密集型任务多线程比单线程慢。 所以在python中如果想要尽可能高的利用多核CPU的性能,还是要使用多进程。 threading模块 此模块的是Python自带的用于实现多线程的模块。 创建线程的两种方法: #-------------------------------
2020-05-29 15:19:49 119
原创 socket+threading实现python多人局域网聊天室
socket+threading实现python多人局域网聊天室 服务端 import socket import threading """ 设计思路: 1.每连接一个客户,创建一个线程 2.每个线程单独接收一个客户的信息,并向所有连接的客户发送接受到的信息 3.这样就可以实现聊天室的功能 """ # 设置服务端 server = socket.socket(socket.AF_INET,...
2020-03-23 16:05:05 1414
原创 30行代码实现图片转字符画
30行代码实现图像转字符 安装PIL图像处理库 PIL库是一个用于处理图像的库 pip install PIL 知识点介绍 灰度值 把白色与黑色之间按对数关系分成若干级,称为“灰度等级”。范围一般从0到255,白色为255,黑色为0,故黑白图片也称灰度图像,在医学、图像识别领域有很广泛的用途 RGB值 RGB色彩模式是工业界的一种颜色标准,是通过对红®、绿(G)、蓝(B)三个颜色通...
2020-02-20 08:21:23 593
原创 快速排序
快速排序 算法步骤 找一个基准值,将这个基准值放在正确的位置上,也就是左边的都比它小,右边都比它大,至于左右两边的顺序先不管。 此时数列已经被分为了两个部分,再在左右两边重复第一步,直到数列的顺序被排好。 动图演示 代码实现 def quick_sort(ls,left,right): if left>right: #递归停止的条件 return c...
2020-02-07 20:31:48 118
原创 希尔排序
希尔排序 前言 说到希尔排序,就不得不说到插入排序,插入排序有一个缺点,那就是对于有序性高的序数列,排序效果好,也就是速度快,但对于无序性高的数列来说,插入排序的速度就会很慢。为什么呢?因为,每次从无序数列中向有序数列插入时,都要依次从后往前和有序数列中的每一个数比较这样的话,效率就比较低。这也就解释了为什么,对于有序性高的竖列,排序速度就会快一些。但实际情况中,不是说你想怎么样就怎么样的,于是就...
2020-02-05 14:28:20 384
原创 插入排序
插入排序 算法步骤 这个算法比较好理解,说白了,和你打扑克牌时理牌几乎是一样的 把第二张抽出来和第一张比较,小就放到第一张前面 这时前两张就已经排好序了,再将第三张抽出从后往前和前两张比较,比哪张小,就放到哪张前面 这时前三张就已经排好序了,再将第四张抽出从后往前和前三张比较,比哪张小,就放到哪张前面 : : : 如此循环往复,直到排好 图解算法 代码实现 原理很简单,但代码有...
2020-02-03 22:41:46 86
原创 选择排序
选择排序 算法步骤 找到序列中的最小数,放到序列的起始位置 再从剩余的序列中继续寻找最小的数 重复以上步骤,你将得到按冲小到大排序的序列 图解算法 代码实现 # 选择排序 ## 算法步骤 1. 找到序列中的最小数,放到序列的起始位置 2. 再从剩余的序列中继续寻找最小的数 3. 重复以上步骤,你将得到按冲小到大排序的序列 ## 图解算法 ![选择排序](C:\Users\Admini...
2020-02-03 18:27:06 66
原创 冒泡排序
算法步骤 从第一个数开始,依次前一个数与后一个数比较大小,当后一个数比前一个数小时,两个数交换 当第n-1个数与第n个数比较完后,停止比较 再从第一个数开始,重复以上步骤 直到所有数按从小到大的顺序排列 图解算法 代码实现 ls=[3,5,15,26,36,38,46,44,2,] def bubble_sort(ls): for i in range(len(ls)): ...
2020-02-02 21:55:11 102
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人