<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[带熊超人 的博客]]></title><description><![CDATA[不试试怎么知道呢]]></description><link>https://blog.youkuaiyun.com/stdio1916</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; stdio1916]]></copyright><item><title><![CDATA[Python脚本打包为exe]]></title><link>https://blog.youkuaiyun.com/stdio1916/article/details/114378577</link><guid>https://blog.youkuaiyun.com/stdio1916/article/details/114378577</guid><author>stdio1916</author><pubDate>Thu, 04 Mar 2021 21:50:40 +0800</pubDate><description><![CDATA[直接Pyinstaller：

cmd


pyinstaller -Fw D:\test\test.py      # 控制台程序 加w不显示控制台，去掉w就能显示控制台

（-F 是打包成一个文件，-w是不出现调试窗口，窗体程序要这个）

用这个打包出来的exe会很大，没面子。

百度一下，据说Anaconda环境打包会使exe小很多。

但是，我不知道Anaconda，只知道pipenv，都可以创建py虚拟环境。



虚拟环境Pyinstaller：

cmd


#安装pipenv
pip in.]]></description><category></category></item><item><title><![CDATA[标准SQL语句综合]]></title><link>https://blog.youkuaiyun.com/stdio1916/article/details/95485609</link><guid>https://blog.youkuaiyun.com/stdio1916/article/details/95485609</guid><author>stdio1916</author><pubDate>Thu, 11 Jul 2019 15:56:01 +0800</pubDate><description><![CDATA[-- 创建表
CREATE TABLE brand (id INT PRIMARY KEY AUTO_INCREMENT,  -- 主键 自增
					factory VARCHAR(255) NOT NULL,  -- 非空
					-- factory VARCHAR(255) REFERENCES factory(name),  
                    name VA...]]></description><category></category></item><item><title><![CDATA[python爬虫综合概述（更新中...）]]></title><link>https://blog.youkuaiyun.com/stdio1916/article/details/94736095</link><guid>https://blog.youkuaiyun.com/stdio1916/article/details/94736095</guid><author>stdio1916</author><pubDate>Sun, 07 Jul 2019 18:27:22 +0800</pubDate><description><![CDATA[1.urllib库

1、urllib库主要包含4个模块：

  ①request ： 它是最基本的HTTP 请求模块，可以用来模拟发送请求。就像在浏览器里输入网址然后回车一样，只需要给库方法传入URL 以及额外的参数，就可以模拟实现这个过程了。
  ②error ： 异常处理模块，如果出现请求错误， 我们可以捕获这些异常，然后进行重试或其他操作以保证程序不会意外终止。
  ③pars...]]></description><category></category></item><item><title><![CDATA[N 皇后问题]]></title><link>https://blog.youkuaiyun.com/stdio1916/article/details/90719967</link><guid>https://blog.youkuaiyun.com/stdio1916/article/details/90719967</guid><author>stdio1916</author><pubDate>Sat, 22 Jun 2019 20:35:16 +0800</pubDate><description><![CDATA[N 皇后问题

   N皇后问题是经典回溯问题之一，解决方案是使用栈结构实现试探回溯。

   以下代码使用递归栈实现回溯法，试探出所有可能解。


/**
      N_Queen.h
*/
constexpr const int N = 8;
int _a[N] = { 0 };	//数列代表 对应下标行 中的棋子 放在哪一列（以 0 代表第1 行 或 列）
bool fla...]]></description><category></category></item><item><title><![CDATA[倒水问题]]></title><link>https://blog.youkuaiyun.com/stdio1916/article/details/91352828</link><guid>https://blog.youkuaiyun.com/stdio1916/article/details/91352828</guid><author>stdio1916</author><pubDate>Sun, 09 Jun 2019 14:58:00 +0800</pubDate><description><![CDATA[Q：有A B两个杯子，A杯子 7 L，B杯子 9 L，如何得到 1 L水？

A：使用BFS或者DFS 边建立图，边搜索 有装 1 L水的杯子 的状态。（实际上该问题为多叉树结构，BFS类似于层次遍历，DFS类似于先续遍历，在遍历过程中建立 树 ，到有装 1 L水的杯子 的节点停止。）

给出代码及注释：


/*******************************************...]]></description><category></category></item><item><title><![CDATA[基本排序算法 之十  ——基数排序]]></title><link>https://blog.youkuaiyun.com/stdio1916/article/details/90319419</link><guid>https://blog.youkuaiyun.com/stdio1916/article/details/90319419</guid><author>stdio1916</author><pubDate>Fri, 24 May 2019 00:10:20 +0800</pubDate><description><![CDATA[基本排序算法总结与对比之十 ——基数排序

首先 基数排序分为 两类：

   第一类：最低位优先法，简称LSD法：先从最低位开始排序，再对次低位排序，直到对最高位排序后得到一个有序序列。本文将介绍这种方法。

   第二类：最高位优先法，简称MSD法：先从最高位开始排序，再逐个对各分组内部按次高位进行子排序，循环直到最低位。这种方法的优势是可以处理长度不一致的数据，...]]></description><category></category></item><item><title><![CDATA[基本排序算法 之九  ——桶排序]]></title><link>https://blog.youkuaiyun.com/stdio1916/article/details/90416094</link><guid>https://blog.youkuaiyun.com/stdio1916/article/details/90416094</guid><author>stdio1916</author><pubDate>Fri, 24 May 2019 00:08:17 +0800</pubDate><description><![CDATA[基本排序算法总结与对比之九 ——桶排序

1、桶排序

   桶排序是对基数排序的演绎。计数排序是一个萝卜（相同的数）一个坑，而桶排序是几个萝卜（一定范围的数）一个筐。桶排序是将数据分到有限个桶中，然后对每个桶中的数据再排序（可能继续用桶排序，也可能用其他的排序方法）。

   那么要解决的问题是：

   ① 怎么划分桶？即 数据该划分为几个范围（分几个桶的问...]]></description><category></category></item><item><title><![CDATA[基本排序算法 之八  ——计数排序]]></title><link>https://blog.youkuaiyun.com/stdio1916/article/details/90412944</link><guid>https://blog.youkuaiyun.com/stdio1916/article/details/90412944</guid><author>stdio1916</author><pubDate>Fri, 24 May 2019 00:06:38 +0800</pubDate><description><![CDATA[基本排序算法总结与对比之八 ——计数排序

1、计数排序

   前面介绍的七种排序算法都属于 基于比较的排序算法（CBA式算法）。这类算法的共同点就是：时间复杂度最优只能到O(nlogn)。接下来包括这次介绍的三种算法都属于非比较算法，其时间复杂度平均情况下均为O(k·n)，k为常数。

   计数排序又叫鸽巢排序。就是用一个与 数列最大数数值 相等长度 的数组...]]></description><category></category></item><item><title><![CDATA[基本排序算法 之七  ——堆排序]]></title><link>https://blog.youkuaiyun.com/stdio1916/article/details/90410664</link><guid>https://blog.youkuaiyun.com/stdio1916/article/details/90410664</guid><author>stdio1916</author><pubDate>Fri, 24 May 2019 00:04:50 +0800</pubDate><description><![CDATA[基本排序算法总结与对比之七 ——堆排序

1、堆排序 递归版本

   首先放递归的版本，因为递归版本更容易理解过程。

   堆排序实际是把数列看成一颗完全二叉树，而不是真的去用 指针结构体 构造一颗二叉树。数列在堆中从上到下，从左至右依次排成一棵树。

   下面是递归版本的代码


//用来调整节点，保证节点大于左右孩子
template&lt;type...]]></description><category></category></item><item><title><![CDATA[基本排序算法 之六  ——归并排序]]></title><link>https://blog.youkuaiyun.com/stdio1916/article/details/89866207</link><guid>https://blog.youkuaiyun.com/stdio1916/article/details/89866207</guid><author>stdio1916</author><pubDate>Fri, 24 May 2019 00:02:58 +0800</pubDate><description><![CDATA[基本排序算法总结与对比之六 ——归并排序

1、归并排序 递归版本


template&lt;typename T&gt;
void mergeSort(T arr[], int lo, int hi)
{
    if(hi - lo &lt; 2) return;
    int mi = (lo + hi) &gt;&gt; 1;
    mergeSort(arr, lo,...]]></description><category></category></item><item><title><![CDATA[基本排序算法 之五  ——快速排序]]></title><link>https://blog.youkuaiyun.com/stdio1916/article/details/90116270</link><guid>https://blog.youkuaiyun.com/stdio1916/article/details/90116270</guid><author>stdio1916</author><pubDate>Fri, 24 May 2019 00:01:04 +0800</pubDate><description><![CDATA[基本排序算法总结与对比之五 ——快速排序

1、快速排序 二路双向快排 版本

   首先列出教科书上最普遍的版本：二路快排，准确的说 应该叫 二路双向快排。笔者认为这个应该是效率最为均衡的版本，网络上也流传着 三路快排，但是三路快排仅仅是在序列中存在大量重复元素时，才会发挥出其优势。在对 随机序列 和 近有序序列排序时，效率均低于二路双向快排。

   ...]]></description><category></category></item><item><title><![CDATA[基本排序算法 之四  ——希尔排序]]></title><link>https://blog.youkuaiyun.com/stdio1916/article/details/90346348</link><guid>https://blog.youkuaiyun.com/stdio1916/article/details/90346348</guid><author>stdio1916</author><pubDate>Thu, 23 May 2019 23:58:39 +0800</pubDate><description><![CDATA[基本排序算法总结与对比之四 ——希尔排序

1、希尔排序

   希尔排序实质是不断对数组分组，并对每组数据进行插入排序，分组由 len/step组 直到1组（len为数组长度，step为分组长度）。

   本质上讲，希尔排序算法是直接插入排序算法的一种改进，分组后数据移动长度变短，减少了其复制的次数，速度要快很多。


template&lt;typename ...]]></description><category></category></item><item><title><![CDATA[基本排序算法 之三  ——插入排序]]></title><link>https://blog.youkuaiyun.com/stdio1916/article/details/90343046</link><guid>https://blog.youkuaiyun.com/stdio1916/article/details/90343046</guid><author>stdio1916</author><pubDate>Thu, 23 May 2019 23:56:46 +0800</pubDate><description><![CDATA[基本排序算法总结与对比之三 ——插入排序

1、直接插入排序

   直接插入排序过程如下图所示：

   ① 从第一个元素开始 仅一个3 为有序数列，紧跟有序数列后的 第一个元素 1 往有序数列里插入，形成包含 2 个元素1, 3 的有序数列；

   ② 紧跟有序数列后的 第一个元素 4 往有序数列里插入，形成包含 3 个元素1, 3, 4的有序数列...]]></description><category></category></item><item><title><![CDATA[基本排序算法 之二  ——选择排序]]></title><link>https://blog.youkuaiyun.com/stdio1916/article/details/90341540</link><guid>https://blog.youkuaiyun.com/stdio1916/article/details/90341540</guid><author>stdio1916</author><pubDate>Thu, 23 May 2019 23:53:11 +0800</pubDate><description><![CDATA[基本排序算法总结与对比之二 ——选择排序

1、选择排序

   选择排序的思路是每趟扫描数列，把最小的元素放到前面（或者把最大的元素放到前面）。


template&lt;typename T&gt;
void selectSort(T arr[], int lo, int hi)
{
    int minIndex;    //用来记录比较中最小元素的下标

    ...]]></description><category></category></item><item><title><![CDATA[基本排序算法 之一  ——冒泡排序]]></title><link>https://blog.youkuaiyun.com/stdio1916/article/details/89712898</link><guid>https://blog.youkuaiyun.com/stdio1916/article/details/89712898</guid><author>stdio1916</author><pubDate>Thu, 23 May 2019 23:48:06 +0800</pubDate><description><![CDATA[基本排序算法总结与对比之一 ——冒泡排序

1、未改进的冒泡排序 —— 标准冒泡排序


template&lt;typename T&gt;
void bubbleSort(T arr[], int len)
{
    for(int i = 0; i &lt; len - 1; i++)
    {
        for(int j = 0; j &lt; len - 1 - ...]]></description><category></category></item><item><title><![CDATA[十大排序基础排序算法总结 与 速度对比]]></title><link>https://blog.youkuaiyun.com/stdio1916/article/details/90485867</link><guid>https://blog.youkuaiyun.com/stdio1916/article/details/90485867</guid><author>stdio1916</author><pubDate>Thu, 23 May 2019 23:46:17 +0800</pubDate><description><![CDATA[1、十大排序基础排序算法总结 与速度对比 —— 耗时测试

   测试环境：CPU： i5-3210M 2.5GHz 2.5GHz； 内存：4G；  Win10 64位系统；  VS 2015 release模式 32位。



   测试数据均为 int 类型：

       取值规则为：(rand() % (N)) * 3 - ra...]]></description><category></category></item><item><title><![CDATA[python控制台实现俄罗斯方块]]></title><link>https://blog.youkuaiyun.com/stdio1916/article/details/79939818</link><guid>https://blog.youkuaiyun.com/stdio1916/article/details/79939818</guid><author>stdio1916</author><pubDate>Sat, 14 Apr 2018 15:12:14 +0800</pubDate><description><![CDATA[初学python，实现了一个控制台上的俄罗斯方块。（没有使用pygame）。

  【环境：python3，使用python2可能在显示时有编码问题，不过不影响功能。】

 先说一下思路：

 采用局部屏幕刷新，精确到每一个方块，除初始化时刷新了两块显示方块的区域。（没有使用sys("cls")，不会闪屏）。

 使用 c...]]></description><category></category></item></channel></rss>