算法
MrYH23
本人为在读研究生,深度学习爱好者
展开
-
二分图的最大匹配、完美匹配和匈牙利算法
二分图的最大匹配、完美匹配和匈牙利算法这篇文章讲无权二分图(unweighted bipartite graph)的最大匹配(maximum matching)和完美匹配(perfect matching),以及用于求解匹配的匈牙利算法(Hungarian Algorithm);不讲带权二分图的最佳匹配。二分图:简单来说,如果图中点可以被分为两组,并且使得所有边都跨越组的边界,则这就...转载 2019-04-12 15:26:00 · 140 阅读 · 0 评论 -
c++中的栈解旋
#include <iostream>using namespace std;//1.c++中异常是跨函数的//2.异常必须处理//a->b->c->d a函数调用b,b调用c,c调用d,若d发生异常,会逐级往上抛,先抛给c,若c不处理则抛给b,同样,b不处理,抛给a,//都不处理,则宕机,有一个处理,问题就能解决。//throw 抛出异常//try ...原创 2019-06-07 17:11:44 · 362 阅读 · 0 评论 -
c++ 归并排序
每个人写的归并细节都不同,把归并的原理弄懂:1.将归并排序拆分为3个部分,其中最核心的是归并,如下的merge函数(将两个有序的数组或容器归并后排序)2.将一个数组,开始分为单个的元素两两一起归并,得到以2个元素为单位的有序数组(Mergepass)2中有条件,若有剩下没有按次行归并规则归并的,若满足条件在单独归并,若不满足条件,直接拷贝到target数组中**************...原创 2019-06-19 17:06:09 · 896 阅读 · 0 评论 -
c++ 冒泡排序
#include <iostream>using namespace std;//冒泡排序void bubblesort(int list[],int n){ for (int i=0;i<n-1;i++) { for (int j = 0; j <n-i-1 ; j++) { if(list[j]>...原创 2019-06-17 19:55:00 · 151 阅读 · 0 评论 -
c++ 选择排序
#include <iostream>using namespace std;//选择排序,选择最小的往左边放void selectsort(int *list, int n){ for(int i=0;i<n-1;i++) { int min=i; //min就是毛巾,毛巾是数组的下标 for (int j = i...原创 2019-06-17 19:55:45 · 108 阅读 · 0 评论 -
c++ 顺序查找,二分查找
#include <iostream>using namespace std;//顺序查找与二分查找//顺序查找就是循环//二分查找//使用前提:数据必须排序int binarysearch(int* a, int x, int n){ int low; int high; low=0; high=n-1; while ...原创 2019-06-17 19:56:33 · 928 阅读 · 0 评论 -
c++ 中的递归,以及递归的二分查找
#include <iostream>using namespace std;//递归是神 迭代是人//递归int jiechen(int n){ if(n==0) return 1; return n*jiechen(n-1);}//迭代int xunhuan(int n){ int a=1; for(int ...原创 2019-06-17 22:54:23 · 1161 阅读 · 0 评论 -
经典快排与随机快排
#include <iostream>using namespace std;//快排分为经典快排,和随机快排//经典快排以数组左值或者右值为枢纽,进行排序,时间复杂度,按最坏情况算法,为O(N^2)//而随机快排是以数组中的随机值为枢纽,是有概率的,因此,随机的快排的时间复杂度,是以期望计算,有如下结论:随机快排的时间复杂度为O(N*logN)//修改后的荷兰国旗问...原创 2019-07-11 21:12:24 · 122 阅读 · 0 评论