<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[XiDieccc的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/XiDieccc</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; XiDieccc]]></copyright><item><title><![CDATA[KMP算法详解]]></title><link>https://blog.youkuaiyun.com/XiDieccc/article/details/123237399</link><guid>https://blog.youkuaiyun.com/XiDieccc/article/details/123237399</guid><author>XiDieccc</author><pubDate>Wed, 02 Mar 2022 21:00:06 +0800</pubDate><description><![CDATA[KMP算法

KMP算法用于串的模式匹配
设主串为 text，模板串为 str
若匹配成功返回该模板串首次出现在主串的下标，若失败则返回 -1

暴力解法

i_t 为主串比较的下标
i_s 为模板串比较的下标
若某次该位置匹配成功，主串和模板串的比较位置都置为下一位；若 i_s到达边界，则匹配成功，退出循环
若匹配失败，模板串比较位置退回到起始位置，即 i_s = 0 ，所以 i_s 也是已经匹配成功的长度；主串比较位置改为上一轮开始比较位置的下一位置，相当于主串整体前移一位，即为 i_t = i_t -]]></description><category></category></item><item><title><![CDATA[计数排序、基数排序和桶排序]]></title><link>https://blog.youkuaiyun.com/XiDieccc/article/details/122900701</link><guid>https://blog.youkuaiyun.com/XiDieccc/article/details/122900701</guid><author>XiDieccc</author><pubDate>Sat, 12 Feb 2022 19:22:17 +0800</pubDate><description><![CDATA[计数排序、基数排序和桶排序

计数排序
不同于基于比较和交换的排序，计数排序是基于统计词频的排序，计数排序的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中，这就要求了待排元素必须是有确定范围的整数。

计数排序的过程如下????

计数排序步骤：

确定数组元素的范围，即为 最大值和最小值
开辟对应范围长度的数组 countArr[]，遍历统计待排元素设为 num
对于每次出现的 num，将 countArr[num]++
此时按序按次输出 countArr[]，即排好序


桶排序
桶排序如其名]]></description><category></category></item><item><title><![CDATA[堆排序算法]]></title><link>https://blog.youkuaiyun.com/XiDieccc/article/details/122883589</link><guid>https://blog.youkuaiyun.com/XiDieccc/article/details/122883589</guid><author>XiDieccc</author><pubDate>Fri, 11 Feb 2022 16:38:13 +0800</pubDate><description><![CDATA[堆排序
堆的概述
可以将长度为 n 的一维数组视为一棵 完全二叉树 ????， 0 位置为根节点，对于下标为 i 的 节点：

其左孩子下标为 2*i+1
右孩子下标为 2*i+2
父节点下标为 (i-1)/2 ，根节点代入 0 计算后为本身

若对于该树的任意节点，都满足该节点值大于子节点的值，则称该堆为 大根堆 ，
若该节点值小于子节点的值，则称该堆为 小根堆
实例如图????

堆的核心操作
堆有两个核心操作：向上调整???? 和 向下调整????
以大根堆为例：
向上调整heapInsert()

]]></description><category></category></item><item><title><![CDATA[归并排序算法]]></title><link>https://blog.youkuaiyun.com/XiDieccc/article/details/122877719</link><guid>https://blog.youkuaiyun.com/XiDieccc/article/details/122877719</guid><author>XiDieccc</author><pubDate>Fri, 11 Feb 2022 12:22:46 +0800</pubDate><description><![CDATA[归并排序算法
二路归并]]></description><category></category></item><item><title><![CDATA[快速排序算法]]></title><link>https://blog.youkuaiyun.com/XiDieccc/article/details/122860133</link><guid>https://blog.youkuaiyun.com/XiDieccc/article/details/122860133</guid><author>XiDieccc</author><pubDate>Thu, 10 Feb 2022 14:29:57 +0800</pubDate><description><![CDATA[快速排序
基本思想
快速排序是基于分治法的，其思路如下：
在待排序序列中，选取一个数值作为 基准 pivot ，通过一趟排序，将序列以 pivot 划分为了 左右两个子序列
左子序列元素值都比 pivot 小，右子序列元素值都比 pivot 大，相当于一趟排序后，确定了 pivot 在序列中的最终位置
分别递归对左右子序列重复操作，直至确定所有元素的最终位置

❓  其难点主要在于，在某一趟排序（实则为某次递归中），如何划分左右两个子序列

]]></description><category></category></item><item><title><![CDATA[异或在算法中的妙用]]></title><link>https://blog.youkuaiyun.com/XiDieccc/article/details/122731347</link><guid>https://blog.youkuaiyun.com/XiDieccc/article/details/122731347</guid><author>XiDieccc</author><pubDate>Fri, 28 Jan 2022 15:34:21 +0800</pubDate><description><![CDATA[异或在算法中的妙用，异或实现交换
异或的性质
异或满足交换律和结合律
异或运算的结果与参与异或运算的变量的排列组合无关，即与运算的先后顺序无关
]]></description><category></category></item></channel></rss>