【算法集锦 -- 导航篇】教程文章相关的互联网学习教程文章

[LOJ#2540][PKUWC2018]随机算法(概率DP)【代码】

场上数据很水,比较暴力的做法都可以过90分以上,下面说几个做法。1. 暴力枚举所有最大独立集,对每个独立集分别DP。复杂度玄学,但是由于最大独立集并不多,所以可以拿90.2. dp[S][k]表示考虑到排列的第k位,当前独立集为S的方案数,枚举第k+1位,根据是否与S相连转移到dp[S][k+1]或dp[S | a[k+1]][k+1]。$O(n^22^n)$3. dp[S]表示排列的状态为S时的正确率,mx[S]表示排列状态为S时能得到的最大独立集大小,考虑转移,枚举排列里最...

408 2019算法题目【代码】

算法基本思想:分三步完成:第一步:采用两个指针交替前行,找到单链表中间节点第二步:将单链表后半段节点原地逆置第三步:从单链表前后两段各取一个节点,按要求重排代码实现:void change_list(Node *h) {Node *p,*q,*r,*s;p=q=h;while(q->next!=null)//寻找中间节点{p=p->next;//p走一步q=q->next;if(q->next!=NULL)q=q->next;//q走两步}q=p->next//p所指即为中间节点,q为后半段链表首节点p->next=NULL;while(q!=NULL){r=q->...

机器学习(三)——决策树(decision tree)算法介绍

0.机器学习中分类和预测算法的评估标准 准确率 速度 强壮性 可规模性 可解释性 1、什么是决策树/判定树(decision tree)? 判定树是一个类似于流程图的树结构:其中,每个内部节点表示一个属性上的测试,每个分支代表一个属性的输出,而每个树叶节点代表类或者类分布。树的最顶层是根节点。2、机器学习中分类方法的重要算法是决策树3、构造决策树的基本算法 3.1熵(entropy)概念 信息和抽象,如何度量?19...

008实现一个算法从一个单链表中返回倒数第n个元素(keep it up)

我们维护两个指针, 它们之间的距离为n。然后。我将这两个指针同步地在这个单链表上移动,保持它们的距离 为n不变。那么,当第二个指针指到空时。第一个指针即为所求。#include <iostream>struct Node {int data;Node* next; };void initList(Node* vNode) {for (int i=0; i < 20; ++i){Node* TempNode = new Node;TempNode->data = i;TempNode->next = vNode->next;vNode->next = TempNode;} }Node* getNthBackWards(const N...

算法笔记--三分查找【代码】

好菜啊,现在才学三分。三分:查找凸形(凹形)函数的极大值(极小值)。模板1:double three_divide() {double l=0,r=1000;double mid=(l+r)/2;double mm=(l+mid)/2; while(r-l>=eps){if(F(mid)>F(mm))r=mid;else l=mm;mid=(l+r)/2;mm=(l+mid)/2;}return F(mid); } 模板2: double three_divide() {double l=0,r=1000;double m1=(l+l+r)/3;double m2=(l+r+r)/3; while(r-l>=eps){if(F(m2)>F(m1))r=m2;else l=m1;m1=(l+l+r)/3;m2=(...

python3实现二叉树的遍历与递归算法解析【代码】【图】

1、二叉树的三种遍历方式二叉树有三种遍历方式:先序遍历,中序遍历,后续遍历 即:先中后指的是访问根节点的顺序 eg:先序 根左右 中序 左根右 后序 左右根  遍历总体思路:将树分成最小的子树,然后按照顺序输出   1.1 先序遍历     a 先访问根节点    b 访问左节点    c 访问右节点     a(b ( d ( h ) )( e ( i ) ))( c ( f )( g )) -- abdheicfg   1.2 中序遍历 ...

排序算法总结【代码】

本文将给出六大经典排序的实现。 简单排序算法:冒泡,插入,选择 改进排序算法:快排,归并,堆排以下排序用到的交换函数:void swap(int &A, int &B) {int temp = A; A = B; B = temp; }1. 冒泡排序2个相邻的元素相互比较,不满足顺序则交换;每遍历一次数组,使一个元素处于最终位置。 时间复杂度O(n2)/**/ 空间复杂度O(1)/**/void BubbleSort(int nums[], intleft, intright) {if (nums == NULL || right-left+1 <= 0)retur...

算法第一章

本学期我将遵守谷歌的代码标准https://blog.csdn.net/doubleintfloat/article/details/86552296?biz_id=102&utm_term=%E4%BB%A3%E7%A0%81%E8%A7%84%E8%8C%83&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-86552296&spm=1018.2118.3001.4187二、算法是程序的灵魂,是程序的基础,没有良好的算法知识储备,无论学了多少语言都难以编出一个好的程序;因为恰当的算法,可以让你的程序节省时间、...

算法模板整理(一)【代码】

1.归并排序板子(包含求逆序对个数):#include<bits/stdc++.h> usingnamespace std; constint maxn=1e5+10; int a[maxn],tmp[maxn]; int ans=0;void merge_sort(int l,int r) {if(l>=r)return;int mid=l+r>>1;merge_sort(l,mid);merge_sort(mid+1,r);int i=l,j=mid+1,k=0;while(i<=mid&&j<=r){if(a[i]<=a[j])tmp[k++]=a[i++];else{ans+=mid-i+1;tmp[k++]=a[j++];}}while(i<=mid)tmp[k++]=a[i++];while(j<=r)tmp[k++]=a[j++];for(i...

排序算法总结:一、基数排序【代码】

基数排序(Radix sort)是一种非比较型的整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。基数排序也分为LSD(Least significant digital)和MSD(Most significant digital)两种方式,LSD的排序方式由键值的最右边开始,而MSD则相反,由键值的最左边开始。以LSD为例,假设原来有一串数值如下所示:  73, 22, 93, 43, 55, 14, 28, 65, 39, 81  首先根据个位数的数值,在走访数值时将它们分配至编...

hash算法学习

1. Hash是什么,它的作用 先举个例子。我们每个活在世上的人,为了能够参与各种社会活动,都需要一个用于识别自己的标志。也许你觉得名字或是身份证就足以代表你这个人,但是这种代表性非常脆弱,因为重名的人很多,身份证也可以伪造。最可靠的办法是把一个人的所有基因序列记录下来用来代表这个人,但显然,这样做并不实际。而指纹看上去是一种不错的选择,虽然一些专业组织仍然可以模拟某个人的指纹,但这种代价实在太高了。 而对...

机器学习day16 机器学习实战Apriori算法进行关联分析【图】

上一章学习了非监督学习的聚类,聚类算法可以将不同性质的分类分开。这两天学习了apriori算法进行关联分析,感觉是目前最难理解的一章了,并且书中还有个很坑爹的错误,作者存在很大的疏忽。Apriori算法关联分析:从大规模数据集中寻找物品间的隐含关系被称作关联分析或者关联规则学习。关联分析应用1:我们以前学习的是根据特性进行分类或者回归预测,并没有挖掘特性之间的关系,关联分析可以用于分析数据集中特性之间的关系,可以...

分治算法求解序列最大子和问题【代码】

特别的,当序列所有整数均为负整数时,其最大子和为0。 1 #include <stdio.h>2 3int caluMaxSubSum(int *array, int left, int right);4 5int main()6{ 7int array[6] = {2, -2, 3, 1, -4, 2};8int len_array = sizeof(array)/sizeof(array[0]);9int i = 0; 10int subsum = caluMaxSubSum(array, 0, len_array); 11for(i = 0; i < len_array; i++) 12 { 13 printf("%d ", array[i]); 14 } 1516 printf("\n"); 1...

记录学习k-means聚类算法

由于要将有限个样本聚类成已知个数的簇,因此想到了K-means聚类,很经典的算法,看了一个入门blog感觉很不错,现在分享出来,也可以参考简单的代码:https://blog.csdn.net/code_caq/article/details/68486668原文:https://www.cnblogs.com/helloHKTK/p/10645184.html

K-means算法应用:图片压缩【代码】【图】

from sklearn.datasets import load_sample_image from sklearn.cluster import KMeans import matplotlib.pyplot as plt import numpy as np #加载flower的原图 flower=load_sample_image(‘flower.jpg‘) plt.imshow(flower) plt.show() #降低分辨率 image=flower[::3,::3] x=image.reshape(-1,3) print(flower.shape,image.shape,x.shape) #聚类 n_colors=64 model=KMeans(n_colors) labels=model.fit_predict(x) colors=model....