- 博客(8)
- 收藏
- 关注
原创 二分图的最大匹配
一、定义matching:给定一个二分图G = (V,E),M为E的子集,如果图中的顶点最多与M中的一条边相连,则称M为二分图的一个匹配。maximum matching:当M的基数最大时,就为最大匹配.free:如果一个顶点v 不与M中任何一条边相连,即未参与匹配,则状态标记为freeaugmenting path:一条通路P=(v1,v2),……(v2k-1,v2k)如果起点v1与终点v2k 均为free且P为交错路径则称P为M的增广路径...
2021-12-17 23:45:30 2536
原创 3-增量序列{3,2,1}的希尔排序时间复杂度分析
在本文中我们进行(3,2,1)-Shellsort在n元素随机序列的算法分析1.preh = (ht,ht-1,…,h2,h1) : h1=1的正整数向量S1(h;n): 第j趟排序进行的平均元素交换次数I(L): L中含有的逆序数L(h,j): 长度为(n+h-1+j)/h的L的子序列(L[ j ],L[ j+h ],L[ j+2h ],…)2.conclusionfor h = (3,2,1):(1)S1(h;n) = n2/12 +O(n);(2)S2(h;n) = (π/19
2021-12-10 16:31:53 421
原创 Ackermann函数相关整理
Ackermann函数是计算机科学中常出现的函数,本文将Ackermann函数相关整理如下:定义:A(1, j ) = 2j, j>=1A( i, 1) = A( i-1, 2) , i>=2A( i, j ) = A( i-1, A( i, j-1) ), i, j >=1A(0, x) = 2*x , x>=0A( i, 0) = 1, i>=1简单的递归实现:int A(int i,int j){ if(i>=1&&j>
2021-11-29 19:55:50 652
原创 二叉堆的Deletemin
本文讨论删除二叉堆的堆顶元素并重构二叉堆,以最小堆为例(1)删除堆顶元素会产生一个位于堆顶的空穴和一个多余的元素lastelement(最后一个元素),我们需要在空穴的两个孩子以及lastelement之间进行比较将三者中的最小者填入空穴,并产生新的空穴,直至lastelement填入某个空穴中,这种算法对于每个空穴要进行两次比较,而空穴最多产生log N个,故需要2*log N次比较。这便是我们最常见的算法,代码如下:template<typename T>void binaryhea
2021-03-14 15:22:31 567 1
原创 堆的巧妙构建
今天讨论关于建立二叉堆的比较算法优化1.建立一个二叉堆,至多在元素间进行2N-2次比较二叉堆的每两个节点间的连线对应两次比较,一次是找出较小的儿子节点,另一次是将较小的儿子与该节点比较。为了确定buildheap的时间界,我们需要确定连线条数的界,这可以通过计算所有节点的高度和得到,该和为O(N)Theorrm:包含2^(h+1) -1个节点,高为h上的理想二叉树的节点的高度的和为2^(h+1)-1-(h+1)proof:该树由高度为h的1个节点,高度h-1的2个节点……组成,则所有节点高度的和为
2021-02-23 20:25:37 163
原创 在一个字符串中查找是否出现子字符串
今天写一篇帖子,讨论如何判断在一个字符数为N的字符串s1中是否存在一个字符数为k(k<N)的子字符串s2,并返回第一次出现的位置1.首先最一般的算法就是将s1进行分割,将字串与s2进行比较,这种算法最坏情形下的时间复杂度为O(k*(N-k)),平均时间为k*(1+N-k)/22.对第一种算法稍微进行一些优化,我们首先在s1中查找s2的第一个字符,找到之后对后续字符进行比对,这样使得平均情形有了较大改善3.之后我应用了散列的想法,对这个问题重新进行考虑,假设s1字符串为A1A2……AN,s2字符串
2021-02-08 19:27:19 1227 1
原创 JAVAFX15的配置与使用(含踩坑)
JAVAFX15的配置与使用最近学习到JAVAFX但是import javafx失败,查阅后发现我使用的是jdk15,是已经移除了javafx组件的。我灵机一动,直接改用jdk8不就好了,然后发现vscode不支持jdk11以下版本。。。那只好继续使用jdk15喽,去网上下载javafx并安装,这样我就有了javafx的包...
2021-01-20 14:39:12 4728 4
原创 读取被include修饰的文件并输出这个文件
读取被include修饰的文件并输出这个文件一个简单的递归调用`#include <iostream>#include <vector>#include <string>#include<fstream>#include <cstdlib>//#define MAXN 105using namespace std;void process_line(string filename);int main(){ string
2020-12-07 13:36:21 234
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人