<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[m0_50068082的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/m0_50068082</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; m0_50068082]]></copyright><item><title><![CDATA[C++知识:枚举]]></title><link>https://blog.youkuaiyun.com/m0_50068082/article/details/122796788</link><guid>https://blog.youkuaiyun.com/m0_50068082/article/details/122796788</guid><author>m0_50068082</author><pubDate>Sun, 06 Feb 2022 12:01:12 +0800</pubDate><description><![CDATA[什么是枚举
枚举算法是一种经典的暴力算法，是通过遍历所有候选答案以找到正确的解的问题解决策略；

枚举的基本框架
1.给出解空间
建立数学模型，确立候选答案的范围，从数学的角度说：就是给出可能解的集合，这是最关键的一步，确立正确的解空间是应用枚举算法的前提。
2.找到枚举的具体方法
在确立了正确的解空间后，还要知道怎么枚举才能找到正确的答案。
对于不同的问题，枚举的具体方法很可能是不同的。

枚举的种类
1.循环枚举
通过数层循环来达到穷举解空间里的解，找到正确的答案，是最基本的枚举算法
例：
求小于 N ]]></description><category></category></item><item><title><![CDATA[C++知识:快速排序]]></title><link>https://blog.youkuaiyun.com/m0_50068082/article/details/122796767</link><guid>https://blog.youkuaiyun.com/m0_50068082/article/details/122796767</guid><author>m0_50068082</author><pubDate>Sun, 06 Feb 2022 11:53:15 +0800</pubDate><description><![CDATA[快速排序（QuickSort）是排除稳定性因素后最常用的排序。

算法描述：

从数列中挑出一个元素作为基准。
	重新排列数列，把所有的比基准小的放在基准前面，反之放在后面（一样大可任意一边）完成后基准处在分区的中间位置。
	通过递归调用把小于基准元素和大于基准元素的子序列进行排序。
算法可视化：




#include &lt;iostream&gt;
using namespace std;
void Qsort(int arr[], int low, int high){
    if (hig..]]></description><category></category></item><item><title><![CDATA[C++知识:插入排序]]></title><link>https://blog.youkuaiyun.com/m0_50068082/article/details/122796686</link><guid>https://blog.youkuaiyun.com/m0_50068082/article/details/122796686</guid><author>m0_50068082</author><pubDate>Sun, 06 Feb 2022 11:39:46 +0800</pubDate><description><![CDATA[插入排序

插入排序(Straight Insertion Sort)是一种最简单的排序方法，其基本操作是将一条记录插入到已经排序好的有序表中，从而得到一个新的，记录数量增1的有序表。

排序方法

1、简单方法

首先在当前有序区R[1..i-1]中查找R[i]的正确插入位置k(1≤k≤i-1)；然后将R[k．．i-1]中的记录均后移一个位置，腾出k位置上的空间插入R[i]。

注意：若R[i]的关键字大于等于R[1．．i-1]中所有记录的关键字，则R[i]就是插入原位置。

2．改进的方法

一种查找.]]></description><category></category></item><item><title><![CDATA[C++知识:冒泡排序]]></title><link>https://blog.youkuaiyun.com/m0_50068082/article/details/122796676</link><guid>https://blog.youkuaiyun.com/m0_50068082/article/details/122796676</guid><author>m0_50068082</author><pubDate>Sun, 06 Feb 2022 11:38:23 +0800</pubDate><description><![CDATA[冒泡排序（Bubble Sort），是一种计算机科学领域的较简单的排序算法。
它重复地走访过要排序的元素列，依次比较两个相邻的元素，如果顺序（如从大到小、首字母从Z到A）错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换，也就是说该元素列已经排序完成。
这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端（升序或降序排列），就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样，故名“冒泡排序”。
双重循环时间 O(n^2)

算法描述：

比较相邻两个数。它们是逆序的，就交]]></description><category></category></item><item><title><![CDATA[C++知识:选择排序]]></title><link>https://blog.youkuaiyun.com/m0_50068082/article/details/122796563</link><guid>https://blog.youkuaiyun.com/m0_50068082/article/details/122796563</guid><author>m0_50068082</author><pubDate>Sun, 06 Feb 2022 11:25:14 +0800</pubDate><description><![CDATA[选择排序（Select Sort） 是直观的排序，通过确定一个 Key 最大或最小值，再从待排序的的数中（无序区）找出最大或最小的交换到对应位置。再选择次之。双重循环时间复杂度为 O(n^2)

算法描述：

在一个长度为 N 的无序数组中，第一次遍历第1..第n个数找到最小的和第一个数交换。
	第二次遍历第2..第n个数，找到最小的数和第二个数交换。
	重复以上操作直到第 n-1 次遍历第n-1和第n个数找到最小的和第n-1个数交换，排序完成。
	算法可视化：



代码实现：


cin&gt;&gt.]]></description><category></category></item><item><title><![CDATA[C++知识:排序]]></title><link>https://blog.youkuaiyun.com/m0_50068082/article/details/122792759</link><guid>https://blog.youkuaiyun.com/m0_50068082/article/details/122792759</guid><author>m0_50068082</author><pubDate>Sat, 05 Feb 2022 19:57:24 +0800</pubDate><description><![CDATA[排序

排序算法是日常使用最频繁的一个算法，生活中也很常见什么排队呀按照高矮次序呀，分数按照一个从高到低的排序等等，但是如果是要设计出来面对基数很大又要很快的排序方法这就是需要很大难度了，先给大家看看排序的种类有哪些，和其对应的时间空间复杂度。



最后一栏有个稳定性给看官解释一下：

稳定：如果 a 原本在 b 前面，而 a=b，排序之后 a 仍然在 b 的前面。
不稳定：如果 a 原本在 b 的前面，而 a=b，排序之后 a 可能会出现在 b 的后面。


...]]></description><category></category></item><item><title><![CDATA[知识:高精度加法和减法]]></title><link>https://blog.youkuaiyun.com/m0_50068082/article/details/122792705</link><guid>https://blog.youkuaiyun.com/m0_50068082/article/details/122792705</guid><author>m0_50068082</author><pubDate>Sat, 05 Feb 2022 19:53:56 +0800</pubDate><description><![CDATA[嗯... 首先让我们引入高精度这个东西....
相信大家都会做A+B Problem 这道题....输出的是A+B 的值....
可你想过没有，如果A= 5983461827658923256597314923593449492545242655621498167329758256231975822594359252779832914372582828292235591346798922923，
B = 938287289238285923438962825923235943876895379767936.]]></description><category></category></item><item><title><![CDATA[知识:高精度乘法]]></title><link>https://blog.youkuaiyun.com/m0_50068082/article/details/122792692</link><guid>https://blog.youkuaiyun.com/m0_50068082/article/details/122792692</guid><author>m0_50068082</author><pubDate>Sat, 05 Feb 2022 19:48:19 +0800</pubDate><description><![CDATA[高精度乘法，实质和加减法一样，为模拟乘法竖式运算。
这里先讲一下竖式计算的方法和原理：
设相乘的两个数A=anan-1...a1a0，B=bmbm-1...b1b0（ai,bi分别表示A和B数位上的每一位数字），则A*B=(an*10n+an-1*10n-1+...+a1*101+a0*100）*(bm*10m+bn-1*10m-1+...+b1*101+b0*100）。
上式利用多项式乘法展开后我们发现：ai*10i*bj*10j=ai*bj*10i+j。
于是我们有了这样的做法：将A和B的每位数字拆分.]]></description><category></category></item></channel></rss>