草庐IT

递归算法

全部标签

java - 如何表示遗传算法中时间表问题的时间表?

对于遗传算法,通常基因符号如下:PARENT1:101101010101001001001001110011100110101011101101PARENT2:010100111011010101110101001001101011001010010110所以交叉,突变可以像这样用这种表示来完成:选择交叉点:PARENT1:101101010101001001001001110011100110101011101101PARENT2:010100111011010101110101001001101011001010010110执行交叉产生一个child:CHILD:101101010

java - 递归计算中偶发的StackOverflowError

在Eclipse中执行下面粘贴的代码时,大约有三分之一的时间我会遇到以下异常:Exceptioninthread"main"java.lang.StackOverflowErroratsrc.Adder.recursiveSumAllNumbersUpTo(Driver.java:33)atsrc.Adder.recursiveSumAllNumbersUpTo(Driver.java:37)...*(thereare1024linesinthisstack)*另外2次,它按预期吐出结果(每次运行之间的时间略有不同):Recursive:467946NonRecursive:61282

java - Canny 算法 : Hysteresis Mal-function

我正在编写Canny算法,我似乎遇到了滞后问题。阈值似乎在处理,但我的滞后似乎根本不起作用。以及出于某种奇怪原因删除弱的方法。请帮忙!低@10高@75在Hysteresis之后,对于问题A,没有使用performHysteresis方法加强边缘;Bweaknon-edges没有用removeWeak方法移除。方法源码如下:importjava.awt.image.BufferedImage;importjava.awt.image.ConvolveOp;importjava.awt.image.Kernel;classCannyMethod{privatestaticfinalfloa

java - 在类 Test 中实例化类 Test 的成员是递归吗?

这是递归吗?publicclassTest{Testtest=newTest();publicstaticvoidmain(String[]args){newTest();}}关于instanceinitalizer的版本呢??publicclassTest{{Testtest=newTest();}publicstaticvoidmain(String[]args){newTest();}}我在问,因为我更新了myoldanswer,它展示了如何在没有递归的情况下生成StackOverflowError,但现在我不能100%确定上面的代码是否是递归的。 最

java - 改进去除元素的算法

问题给定一个字符串s和m查询。对于每个查询,删除第K个字符x。例如:abcdbcaab52a1c1d3b2aAnsabbc我的方法我正在使用BIT树进行更新操作。代码:for(inti=0;i时间复杂度是O(MlogN),其中N是字符串ss的长度。问题我的解决方案显示超出时间限制错误。我该如何改进它?publicstaticvoidupdate(inti,intvalue,int[]arr,intxx){while(i0){ans+=arr[i];i-=(i&-i);}returnans;} 最佳答案 有一些关键操作未显示,很可能其

java - 使用递归绘制树

我正在尝试使用递归绘制一棵树。树需要看起来像这样:关于我应该如何做的简短总结:树干的长度为length,宽度为width树干分成两个Twig左边的是躯干长度的3/4,右边的是躯干长度的2/3左枝宽度为树干宽度的3/4,右枝宽度为树干宽度的1/2我们收到的参数是长度、最小长度、宽度、alpha(所有double)Twig生长直到Twig长于最小长度这是我解决问题的方法。我只想画树干,左分支和右分支。我设法做到了这一点,具有以下功能:publicvoiddrawTree(doublelength,doublemin_length,doublewidth,doublealpha){//Dra

零基础学算法100天第2天——bellman-ford(边数限制最短路算法)

⭐️引言⭐️                大家好啊,我是执梗。今天是零基础学算法一百天的第2天,本次我们讲解的是bellman-ford算法。上一次我们提到了最短路算法是有好几种的,不同的算法不仅适用的场景不同,而且复杂度也不同,选择不适很可能会MLE或TLE,今天我们讲解的是bellman-ford算法,这还是非常重要的,模板非常容易记下来。⭐️精彩回放⭐️零基础学算法第一天零基础学算法一百天第1天——Dijkstra(图解最短路算法)📒博客首页:执梗的博客🎉欢迎关注🔎点赞👍收藏⭐️留言📝❤️:热爱Java与算法学习,期待一起交流!🙏作者水平很有限,如果发现错误,求告知,多谢!🌺有问题可私

【数据结构和算法】使用数组的结构实现链表(单向或双向)

上文我们通过结构体的结构实现了队列、以及循环队列的实现,我们或许在其他老师的教学中,只学到了用结构体的形式来实现链表、队列、栈等数据结构,本文我想告诉你的是,我们可以使用数组的结构实现链表、单调栈、单调队列目录前言一、用数组结构的好处1.数组的优缺点2.链表的优缺点3.总结二、用数组实现链表1.认识构造、初始化2.将x插入到头结点3.将x插入到第k次插入数值之后的位置4.删除第k次插入的结点三、完整代码演示四、数组实现双向链表1.初始化2.在第k次插入的点的右边插入x3.删除第k个点五、完整代码前言你之前实现链表的形式,是不是这一种结构来实现typedefstructListNode{ int

c# - Soundex 算法的一些变化

此算法设置为遍历第一个单词或直到它填满四个编码字符串。例如,输入“HorribleGreat”的结果是:H612。它忽略了第二个单词,换句话说,它只用第二个单词的第一个字母来填充编码字符串。我想通过获取第一个单词并找到其编码字符串然后获取第二个单词并找到其编码字符串来更改它;输出应为“H614G600”。我想知道是否有办法通过对**此代码进行一些更改来做到这一点。非常感谢:)privatestringSoundex(stringdata){StringBuilderresult=newStringBuilder();if(data!=null&&data.Length>0){strin

java - 我需要帮助以递归方式比较目录中的文件以查找重复项

我正在开发一个程序,它将(希望)比较给定目录中的所有文件,识别重复项,将它们添加到列表中,然后向用户显示列表,以便他们可以在删除之前验证他们是否希望删除这些文件他们和我被严重困住了。到目前为止,我已经能够递归地列出所有文件,而且我一直在比较它们以找到重复项。我很快意识到要完成我想要的,我需要比较多个文件属性。并非所有文件都是文本文件,就互联网上的示例代码而言,比较文本主要是我发现的内容,我正在尝试了解有关二进制数据的更多信息,因为比较字节数组和文件名是我能做到的最好的跟上。具体来说,我问的是哪些属性最好进行比较,以便在查找重复项的准确性和能够处理合理大小的目录之间取得平衡?如果您不介意