<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[HLComet_Bay_WC的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/HLComet_Bay_WC</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; HLComet_Bay_WC]]></copyright><item><title><![CDATA[算法复杂度分析中常用的五种渐近记号]]></title><link>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/142320694</link><guid>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/142320694</guid><author>HLComet_Bay_WC</author><pubDate>Wed, 18 Sep 2024 12:34:11 +0800</pubDate><description><![CDATA[算法复杂度分析中常用的五种渐近记号]]></description><category></category></item><item><title><![CDATA[Linux系统中为MySql设置主从复制]]></title><link>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/127459040</link><guid>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/127459040</guid><author>HLComet_Bay_WC</author><pubDate>Sat, 22 Oct 2022 23:14:40 +0800</pubDate><description><![CDATA[主从复制：一台或多台数据库从库（slave）从一台MySql主库（master）进行二进制日志的复制，然后再进行日志的解析并应用到自身，最终实现从库的数据库和主库的数据保持一致。]]></description><category></category></item><item><title><![CDATA[快速排序 Java实现解析]]></title><link>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/120734720</link><guid>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/120734720</guid><author>HLComet_Bay_WC</author><pubDate>Wed, 13 Oct 2021 23:50:14 +0800</pubDate><description><![CDATA[package class03;
/*
    快排的治的逻辑：给定一个数，将数组按小于，等于，大于分成三个区域
    所以会有小于区边界，大于区边界两个变量被定义
 */
public class Code03_PartitionAndQuickSort {
     public static void swap(int[] arr, int i, int j) {
         int temp = arr[i];
         arr[i] = arr[j];
         arr[j]]></description><category></category></item><item><title><![CDATA[归并排序（MergeSort） Java实现及解析]]></title><link>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/120661543</link><guid>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/120661543</guid><author>HLComet_Bay_WC</author><pubDate>Wed, 13 Oct 2021 23:45:18 +0800</pubDate><description><![CDATA[package class03;

public class Code01_MergeSort {
    // 递归方法实现
    public static void mergeSort1(int[] arr){
        if(arr == null || arr.length &lt; 2){
            return;
        }
        process(arr, 0, arr.length - 1);
    }

    // 递归函数的定义：让arr在[L]]></description><category></category></item><item><title><![CDATA[有限自动机可解析数据例题分析]]></title><link>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/114994037</link><guid>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/114994037</guid><author>HLComet_Bay_WC</author><pubDate>Wed, 13 Oct 2021 22:43:48 +0800</pubDate><description><![CDATA[因为 NFA 的状态转移可能会对应多种的转移结果，所以与确定性有限自动机不一样，在非确定性有限自动机中我们用一个集合来保存所有可能转移到的状态。有限自动机是一种非常简单但是又很重要的计算模型，我们后面提到的下推自动机和图灵机都是在有限自动机的基础上构造的，所以在查看后面的文章前请务必要先理解有限自动机这种计算模型。OK，我们已经理解了有限自动机的概念了，接下来我们聊聊有限自动机下的两个不同类型：确定性有限自动机和非确定性有限自动机。对于某一个状态，读入某一个输入的时候，可能会有多种转移规则；]]></description><category></category></item><item><title><![CDATA[使用双向链表和数组分别实现栈和队列（Java语言实现）]]></title><link>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/120405658</link><guid>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/120405658</guid><author>HLComet_Bay_WC</author><pubDate>Tue, 21 Sep 2021 22:03:37 +0800</pubDate><description><![CDATA[一、双向链表实现栈和队列


双向链表
比较方便，而且思路清晰的做法是，先使用双向链表实现双向队列。
双向队列可以在头部或者尾部添加或者弹出元素。
随后部分调用双向队列的功能，即可实现栈或队列的功能。（栈：只能从头部添加和弹出元素，链表：只能从头部添加元素，从尾部取出元素）。
// 双向链表
public static class Node&lt;T&gt; {
    public T value;
    public Node&lt;T&gt; last; // 前驱指针
    public Nod]]></description><category></category></item><item><title><![CDATA[单向链表的逆置/反转（Java实现）]]></title><link>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/120356789</link><guid>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/120356789</guid><author>HLComet_Bay_WC</author><pubDate>Fri, 17 Sep 2021 23:08:58 +0800</pubDate><description><![CDATA[一、定义链表
单向链表的性质决定了，由单向链表头节点可以获取整个链表
public class Node {
    public int value;
    public Node next;
	
	// 链表的第一个节点，next指针指向空内存
    public Node(int i){
        value = i;
        next = null;
    }

    /**
     * 向链表中添加新节点
     * @param head 头节点
     * @par]]></description><category></category></item><item><title><![CDATA[Java split(“.“)无效]]></title><link>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/118025524</link><guid>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/118025524</guid><author>HLComet_Bay_WC</author><pubDate>Wed, 23 Jun 2021 00:00:12 +0800</pubDate><description><![CDATA[public String[] split(String regex) {

}
	/* fastpath if the regex is a
	(1)one-char String and this character is not one of the
	RegEx's meta characters ".$|()[{^?*+\\", or
	(2)two-char String and the first char is the backslash and
	the second is not the]]></description><category></category></item><item><title><![CDATA[爬虫爬取网页时‘\xa0‘的处理方法：UnicodeEncodeError: ‘gbk‘ codec can‘t encode character ‘\xa0‘ in position XXX]]></title><link>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/117935766</link><guid>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/117935766</guid><author>HLComet_Bay_WC</author><pubDate>Wed, 16 Jun 2021 00:03:39 +0800</pubDate><description><![CDATA[解决方式1：
将内容全文替换：
res.text.replace(’&amp;nbsp’,’ ')
解决方式2：
内容获取后，写入文件时将编码转换为更通用的UTF-8：
 with open(f'{title}.txt','w') as f:
      f.write(f'{title}\n\n')
      f.write(content)

改为：
with open(f'{title}.txt','w',encoding='utf-8') as f:
    f.write(f'{title}\n]]></description><category></category></item><item><title><![CDATA[冒泡排序，折半查找，选择排序和插入排序Java实现及解析]]></title><link>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/117914538</link><guid>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/117914538</guid><author>HLComet_Bay_WC</author><pubDate>Tue, 15 Jun 2021 00:32:48 +0800</pubDate><description><![CDATA[一、冒泡排序
通过按顺序将元素的逐个比较大小和交换形成有序的元素序列。
public static void bubbleSort(int a[]){
	// 外层循环控制排序趟数（核心是要控制执行n-1趟排序）
	for(int i = 0;i &lt; a.length - 1;i++){
	// 里层循环控制每一趟排序过程中前后相邻位置的数，比较和交换的过程
		for( int j = 0;j &lt; a.length - i -1;j++){
		// j表示每一趟排序过程中待比较的下标位置，从]]></description><category></category></item><item><title><![CDATA[python退出venv虚拟环境]]></title><link>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/117902899</link><guid>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/117902899</guid><author>HLComet_Bay_WC</author><pubDate>Mon, 14 Jun 2021 13:52:14 +0800</pubDate><description><![CDATA[退出：cd到venv/Scripts目录下
执行命令：deactivate

]]></description><category></category></item><item><title><![CDATA[pip异常No module named ‘pip‘处理方法]]></title><link>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/117537618</link><guid>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/117537618</guid><author>HLComet_Bay_WC</author><pubDate>Sat, 05 Jun 2021 15:00:31 +0800</pubDate><description><![CDATA[一、假如环境变量正常
使用命令：
python -m ensurepip


]]></description><category></category></item><item><title><![CDATA[数据库的模式，内模式，外模式]]></title><link>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/115602707</link><guid>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/115602707</guid><author>HLComet_Bay_WC</author><pubDate>Sun, 11 Apr 2021 17:44:27 +0800</pubDate><description><![CDATA[一. 模式
模式（逻辑模式）：ER图所揭示的字段或表间的逻辑；


一个数据库只有一个模式；


是数据库数据在逻辑级上的视图；


定义数据库的逻辑模式时不仅要定义数据的逻辑结构（如数据记录由哪些数据项构成，数据项的名字、类型、取值范围等），而且要定义与数据有关的安全性、完整性要求，定义这些数据之间的联系。


二. 外模式
外模式（/子模式/用户模式）：用户可以操作的视图，例如具体的数据库和表； 一个数据库可以有多个外模式；
三. 内模式
内模式（储存模式）：数据库的物理结构和储存方式，例如底层使用的数]]></description><category></category></item><item><title><![CDATA[McCabe度量法——相关概念介绍及测试用例数、环路复杂度测量例题解析]]></title><link>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/114956928</link><guid>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/114956928</guid><author>HLComet_Bay_WC</author><pubDate>Thu, 18 Mar 2021 11:12:51 +0800</pubDate><description><![CDATA[McCabe度量法：McCabe度量法是由托马斯·麦克凯（Thomas McCabe）提出的一种基于程序控制流的复杂性度量方法。McCabe复杂性度量又称环路度量。它认为程序的复杂性很大程度上取决于程序图的复杂性。单一的顺序结构最为简单，循环和选择所构成的环路越多，程序就越复杂。这种方法以图论为工具，先画出程序图，然后用该图的环路数作为程序复杂性的度量值。程序图是退化的程序流程图。也就是说，把程序流程图的每一个处理符号都退化成一个结点，原来连接不同处理符号的流线变成连接不同结点的有向弧，这样得到的有向图就叫]]></description><category></category></item><item><title><![CDATA[Eclipse在debug调试中String,JSON,XML等文本变量过长显示不全]]></title><link>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/113849553</link><guid>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/113849553</guid><author>HLComet_Bay_WC</author><pubDate>Thu, 18 Feb 2021 17:09:32 +0800</pubDate><description><![CDATA[由以下路径找到debug逐步调试中“经过”的目标变量，使变量得到赋值
window – show view – Variables
(或window – show view – other – Debug – Variables -_-)
点击目标变量后，右键点击下方查看窗口：

选择MaxLength为0，即为设置显示长度为无限。

...]]></description><category></category></item><item><title><![CDATA[爬虫礼仪：避免爬虫开发从入门到入狱]]></title><link>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/112833850</link><guid>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/112833850</guid><author>HLComet_Bay_WC</author><pubDate>Tue, 19 Jan 2021 15:09:21 +0800</pubDate><description><![CDATA[是否遵守爬虫礼仪，可以被看作爬虫是否为良性爬虫的一个判断标准，实际操作是一些网站会在根域名+"/robots.txt"中存放一些爬取数据的相关警告与声明，告知爬虫开发者可用的请求头，不可抓取的数据等。
eg: 土耳其航空：
https://www.turkishairlines.com/robots.txt
User-agent: *
通配符*表示适用于所有爬虫：
Disallow: / * /promotions.xml
Disallow: / * /cityguide.xml

爬虫不可访问的资源
Al]]></description><category></category></item><item><title><![CDATA[用乐观锁防止爆卖/爆买]]></title><link>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/109241562</link><guid>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/109241562</guid><author>HLComet_Bay_WC</author><pubDate>Fri, 23 Oct 2020 14:20:25 +0800</pubDate><description><![CDATA[这种情况下不用新添加version字段进原数据库表，直接利用已有的库存数字的递减进行CAS(比较和判断):
update ticket_stock set ticket_stock = ticket_stock - ${orderCount} where ticket_stock - ${orderCount} &gt; 0;
每次进行删减前确定现有库存减去订单数量后会大于0，如若不满足条件修改语句就不执行。

...]]></description><category></category></item><item><title><![CDATA[数据库单表事务：对于乐观锁，悲观锁的理解]]></title><link>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/109231219</link><guid>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/109231219</guid><author>HLComet_Bay_WC</author><pubDate>Thu, 22 Oct 2020 21:37:39 +0800</pubDate><description><![CDATA[乐观锁（CAS 比较和增加）：觉得其他线程在查询时不会对数据发生修改（增加，删除，修改），需要对数据库中的每一条记录后增加一个字段：version(版本号)，线程对数据进行修改前会比较自身请求所带的version和数据后的version大小，只有在版本号相同的情况下才可进行修改，如若成功进行了修改，会在版本号基础上加一。后续线程因version的不匹配，会导致无法再次进行修改，因而保证了数据安全。
悲观锁（Pessimistic Lock）：觉得每次修改数据时都会有别人进行修改，因而修改的时候会上锁，修改完]]></description><category></category></item><item><title><![CDATA[thymeleaf获取cookie缓存值]]></title><link>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/108502262</link><guid>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/108502262</guid><author>HLComet_Bay_WC</author><pubDate>Wed, 09 Sep 2020 21:03:29 +0800</pubDate><description><![CDATA[&lt;input type="house" id="loggedUserId" th:each="cookie :${#httpServletRequest.getCookies()}"
               th:if="${cookie.getName().equals('userId')}"
               th:value="${cookie.getValue()}"&gt;

需要遍历该浏览器的所有cookie以获得对应值

...]]></description><category></category></item><item><title><![CDATA[thymeleaf获取url地址跳转时所带参数]]></title><link>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/108502069</link><guid>https://blog.youkuaiyun.com/HLComet_Bay_WC/article/details/108502069</guid><author>HLComet_Bay_WC</author><pubDate>Wed, 09 Sep 2020 20:59:46 +0800</pubDate><description><![CDATA[这里写自定义目录标题
eg:地址为：localhost:8080/toHousedesc?houseId=2
在表单元素或标签中用thymeleaf的语法进行接收
&lt;form id="addCollectForm"&gt;
        &lt;input type="text" id="houseId" th:value="${param.houseId}"&gt;
&lt;/form&gt;

th:value="${param.houseId}"即可接收到跳转时所带参数
记得先在页面加载thy]]></description><category></category></item></channel></rss>