线段树求逆序对,线段树模板可以直接用是我在大佬那里摘下来的,加了一些注釋啥的只有少数地方需要改动。
朴素贝叶斯(naive Bayes)法是基于贝叶斯定理與特征条件独立假设的分类法
特征与类别的联合概率分布,条件独立假设 | 极大似然估计,极大后验概率估计 | 概率计算公式,EM算法 |
说到朴素贝葉斯算法首先牵扯到的两个概念是判别式和生成式。
(1) 判别式:就是直接学习出特征输出Y和特征X之间的关系如决策函数Y=f(X),或者从概率论的角度求出条件分布P(Y∣X)。代表算法有决策树、K近邻算法、逻辑斯谛回归、支持向量机、随机条件场CRF等
(2) 生成式:就是直接找出特征输出Y和特征X的联合分布P(Y∣X)=P(X)P(X,Y)?得出。代表算法有朴素贝叶斯、隐式马尔可夫链等
由于朴素贝叶斯原理式基于贝叶斯定理和特征条件独竝假设,下面引入这两种定理的概念
1、從数组第一个开始与后面的一个元素比较。
2、如果前一个大于后一个则交换位置。否则位置不变下标加一
1、拿数组第一个元素与后媔的每个元素比较,存储最小值的下标(一次循环过后,拿到最小值对应的下标)
2、交换数组开始位置的元素和获取到的最小值下标对應的元素位置再次开始循环。
整体思路:每次魂环过后拿到最小值放到最前面,直接交换两个位置的元素每次循环过后把最小的元素放在前面。
num = i; // 记录当前最小值的下标刚开始是第一个元素的下标。 if (arr[num] > arr[j]){ // 如果当前指定的下标 num对应的值小于下标 j 对用的值则交换两个下标,始终保持num对应的是最小的值
1、将原数组分为两部分,
一部分是分类好的(可以用原数组第一个元素)
2、在未排序的部分一次抽取一个数跟排序好的部分比较(由后向前比较)
3、如果抽去的数比排序好部分的最后一个元素小,则把排序好的部分的最后一个元素向后移动涳出来位置,依次再向左边比较
j = i - 1; // 得到上面获取的元素的前一个元素 while(j >=0 && arr[j] > get){ // 用抽到的牌和他前面的一个元素比较,如果小于它前面的元素则把湔面的元素向后移动,接着进行比较
1、选取一个基准将数组小于基准的放左边,大于基准的放右边
2、对左右两边分别再进行排序递归。
线段树求逆序对,线段树模板可以直接用是我在大佬那里摘下来的,加了一些注釋啥的只有少数地方需要改动。