<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[stunning98的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/stunning98</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; stunning98]]></copyright><item><title><![CDATA[python之多线程]]></title><link>https://blog.youkuaiyun.com/stunning98/article/details/106426152</link><guid>https://blog.youkuaiyun.com/stunning98/article/details/106426152</guid><author>stunning98</author><pubDate>Fri, 29 May 2020 15:19:49 +0800</pubDate><description><![CDATA[多线程
GIL

全局解释器锁，保证同一时刻只有一个线程可以执行代码。
GIL是一个历史遗留问题，主要出现在C语言解释器上，导致python的多线程是伪多线程。
虽然Python的多线程是伪多线程，计算密集型任务单线程比多线程快，IO密集型任务多线程比单线程慢。
所以在python中如果想要尽可能高的利用多核CPU的性能，还是要使用多进程。

threading模块

此模块的是Python自带的用于实现多线程的模块。
创建线程的两种方法：

#-------------------------------]]></description><category></category></item><item><title><![CDATA[socket+threading实现python多人局域网聊天室]]></title><link>https://blog.youkuaiyun.com/stunning98/article/details/105050653</link><guid>https://blog.youkuaiyun.com/stunning98/article/details/105050653</guid><author>stunning98</author><pubDate>Mon, 23 Mar 2020 16:05:05 +0800</pubDate><description><![CDATA[socket+threading实现python多人局域网聊天室
服务端
import socket
import threading

"""
设计思路：
1.每连接一个客户，创建一个线程
2.每个线程单独接收一个客户的信息，并向所有连接的客户发送接受到的信息
3.这样就可以实现聊天室的功能
"""


# 设置服务端
server = socket.socket(socket.AF_INET,...]]></description><category></category></item><item><title><![CDATA[30行代码实现图片转字符画]]></title><link>https://blog.youkuaiyun.com/stunning98/article/details/104402438</link><guid>https://blog.youkuaiyun.com/stunning98/article/details/104402438</guid><author>stunning98</author><pubDate>Thu, 20 Feb 2020 08:21:23 +0800</pubDate><description><![CDATA[30行代码实现图像转字符
安装PIL图像处理库
PIL库是一个用于处理图像的库
pip install PIL

知识点介绍

灰度值


把白色与黑色之间按对数关系分成若干级，称为“灰度等级”。范围一般从0到255，白色为255，黑色为0，故黑白图片也称灰度图像，在医学、图像识别领域有很广泛的用途


RGB值


RGB色彩模式是工业界的一种颜色标准，是通过对红®、绿(G)、蓝(B)三个颜色通...]]></description><category></category></item><item><title><![CDATA[快速排序]]></title><link>https://blog.youkuaiyun.com/stunning98/article/details/104215306</link><guid>https://blog.youkuaiyun.com/stunning98/article/details/104215306</guid><author>stunning98</author><pubDate>Fri, 07 Feb 2020 20:31:48 +0800</pubDate><description><![CDATA[快速排序
算法步骤

找一个基准值，将这个基准值放在正确的位置上，也就是左边的都比它小，右边都比它大，至于左右两边的顺序先不管。
此时数列已经被分为了两个部分，再在左右两边重复第一步，直到数列的顺序被排好。


动图演示

代码实现
def quick_sort(ls,left,right):
    if left&gt;right: #递归停止的条件
        return 
    c...]]></description><category></category></item><item><title><![CDATA[希尔排序]]></title><link>https://blog.youkuaiyun.com/stunning98/article/details/104182356</link><guid>https://blog.youkuaiyun.com/stunning98/article/details/104182356</guid><author>stunning98</author><pubDate>Wed, 05 Feb 2020 14:28:20 +0800</pubDate><description><![CDATA[希尔排序
前言
说到希尔排序，就不得不说到插入排序，插入排序有一个缺点，那就是对于有序性高的序数列，排序效果好，也就是速度快，但对于无序性高的数列来说，插入排序的速度就会很慢。为什么呢？因为，每次从无序数列中向有序数列插入时，都要依次从后往前和有序数列中的每一个数比较这样的话，效率就比较低。这也就解释了为什么，对于有序性高的竖列，排序速度就会快一些。但实际情况中，不是说你想怎么样就怎么样的，于是就...]]></description><category></category></item><item><title><![CDATA[插入排序]]></title><link>https://blog.youkuaiyun.com/stunning98/article/details/104163145</link><guid>https://blog.youkuaiyun.com/stunning98/article/details/104163145</guid><author>stunning98</author><pubDate>Mon, 03 Feb 2020 22:41:46 +0800</pubDate><description><![CDATA[插入排序
算法步骤
这个算法比较好理解，说白了，和你打扑克牌时理牌几乎是一样的


把第二张抽出来和第一张比较，小就放到第一张前面


这时前两张就已经排好序了，再将第三张抽出从后往前和前两张比较，比哪张小，就放到哪张前面


这时前三张就已经排好序了，再将第四张抽出从后往前和前三张比较，比哪张小，就放到哪张前面
：
：
：
如此循环往复，直到排好


图解算法

代码实现

原理很简单，但代码有...]]></description><category></category></item><item><title><![CDATA[选择排序]]></title><link>https://blog.youkuaiyun.com/stunning98/article/details/104160126</link><guid>https://blog.youkuaiyun.com/stunning98/article/details/104160126</guid><author>stunning98</author><pubDate>Mon, 03 Feb 2020 18:27:06 +0800</pubDate><description><![CDATA[选择排序
算法步骤

找到序列中的最小数，放到序列的起始位置
再从剩余的序列中继续寻找最小的数
重复以上步骤，你将得到按冲小到大排序的序列

图解算法

代码实现
# 选择排序

## 算法步骤

1. 找到序列中的最小数，放到序列的起始位置
2. 再从剩余的序列中继续寻找最小的数
3. 重复以上步骤，你将得到按冲小到大排序的序列

## 图解算法

![选择排序](C:\Users\Admini...]]></description><category></category></item><item><title><![CDATA[冒泡排序]]></title><link>https://blog.youkuaiyun.com/stunning98/article/details/104149888</link><guid>https://blog.youkuaiyun.com/stunning98/article/details/104149888</guid><author>stunning98</author><pubDate>Sun, 02 Feb 2020 21:55:11 +0800</pubDate><description><![CDATA[算法步骤


从第一个数开始，依次前一个数与后一个数比较大小，当后一个数比前一个数小时，两个数交换
当第n-1个数与第n个数比较完后，停止比较
再从第一个数开始，重复以上步骤
直到所有数按从小到大的顺序排列


图解算法

代码实现

ls=[3,5,15,26,36,38,46,44,2,]
def bubble_sort(ls):
    for i in range(len(ls)):
 ...]]></description><category></category></item></channel></rss>