草庐IT

algorithm

全部标签

c# - .NET 的 Array.Sort() 方法使用哪种排序算法?

.NET的Array.Sort()方法使用了哪种排序算法? 最佳答案 Array.Sort()根据输入的大小选择三种排序算法之一:如果大小小于16个元素,则使用插入排序算法。如果大小超过2*log^N,其中N是输入数组的范围,它使用堆排序算法。否则,它使用快速排序算法来源:Array.Sort(Array)MethodonMSDN. 关于c#-.NET的Array.Sort()方法使用哪种排序算法?,我们在StackOverflow上找到一个类似的问题: ht

c# - 如何找到集合的所有分区

我有一组不同的值(value)观。我正在寻找一种方法来生成该集合的所有分区,即将集合划分为子集的所有可能方法。例如,集合{1,2,3}有以下分区:{{1},{2},{3}},{{1,2},{3}},{{1,3},{2}},{{1},{2,3}},{{1,2,3}}.由于这些是数学意义上的集合,因此顺序无关紧要。例如,{1,2},{3}与{3},{2,1}相同,不应是单独的结果。集分区的完整定义可以在Wikipedia上找到. 最佳答案 我找到了一个简单的递归解决方案。首先,让我们解决一个更简单的问题:如何找到恰好由两部分组成的所有分

C#: 求PNG压缩算法/库

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我需要压缩或至少降低用户上传到我网站的一些png图像的质量。我已经调整了它的大小,但这对图像大小影响不大。寻求.net4.0或以下版本的png/图像压缩或质量损失算法或库。这是我目前保存/转换图像的方式:ImagemainImg=ImageHelper.ResizeImage(bmp,600,500,false);mainImg.Save(filePath

c# - 如何获得下一个工作日,不包括周末和节假日

我有一个要求,我需要在日期字段上工作,所以要求是这样的我将该字段称为最短可能日期给日期加1如果最小可能日期恰好在添加1天后的周末(周六或周日),则显示下一个工作日,即周一如果可能的最短日期恰好是假日,则显示下一个工作日。(节假日1.1、1.5、3.10、25.12、26.12)如果最小可能日期恰好在加上1天后的周末(星期六或星期日),而后一天是假期,则显示下一个工作日。例如:+1天后,如果可能的最短日期是星期六,我们将不得不显示星期一。但如果星期一恰好是假期,那么我们必须显示星期二。我已经尝试通过多个if和else案例来解决上述问题,但只是想知道是否有任何通用且优雅的方法来解决这个问题

c# - 随机字符串 c#

我想知道随机串示例字符串stringword;//Iwanttoshuffleitword="hello"我将能够得到:rand=="ohlel"rand=="lleho"etc. 最佳答案 这个解决方案(以扩展方法的形式)很好:publicstaticstringShuffle(thisstringstr){char[]array=str.ToCharArray();Randomrng=newRandom();intn=array.Length;while(n>1){n--;intk=rng.Next(n+1);varvalue=

c# - 如何在不读取文件的情况下获取行数

有没有办法在不读取文件内容或读取文件结束和计数++的情况下获取大文本文件中的行数。也许有一些文件属性,但根本找不到。因为我可能在某些情况下应该获取总行数并将其与当前行进行比较以显示百分比,并且仅对于百分比显示,先阅读所有内容可能比再次阅读以显示原始文本更愚蠢在用户处。最佳 最佳答案 没有。你必须阅读文件。如果你想快速找到它而不需要计数,可以考虑将它存储在文件的开头或者在编写文件时将它放在一个单独的文件中。请注意,您可以流式传输文件,而且速度出奇地快:intcount=File.ReadLines(path).Count();Beca

c# - Big O 会是一个嵌套的 for 循环,里面有一个 Any() 吗?

这个问题基本上是我的answerhere的后续问题.我真的很想说说这个算法的Big-O是什么,但我不确定我的说法是否完全正确。给定两个数组:B=["HelloWorld!","HelloStackOverflow!","FooBar!","Foodisnice...","Hej"]A=["World","Foo"]什么是大O:Listresults=newList();foreach(stringtestinB){if(A.Any(a=>test.Contains(a))results.Add(test);}我相信它介于O(n)和O(n^2)之间,因为它取决于Any()匹配...

c# - 高效笛卡尔积算法

有人可以为我演示一种比我目前使用的算法更有效的笛卡尔积算法(假设有一个)。我环顾四周并用谷歌搜索了一下,但看不到任何明显的东西,所以我可能会遗漏一些东西。foreach(intiinis){foreach(intjinjs){//Pairiandj}}这是我在代码中所做的高度简化的版本。这两个整数是查找键,用于检索一个/多个对象,并且将来自两个查找的所有对象配对成新对象。这个小代码块在一个更大更复杂的系统中成为一个主要的性能瓶颈,因为它运行的数据集规模很大。通过改进用于存储对象的数据结构和所涉及的查找,可能会减轻其中一些问题,但我认为主要问题仍然是笛卡尔积本身的计算。编辑关于我对算法的

c# - 我如何找出最少数量的字符来创建回文?

给定一个字符串,找出最少需要多少个字符才能使这个单词成为回文。示例:ABBA:0(alreadyapalindrome)ABB:1FAE:2FOO:1 最佳答案 仅限算法,因为这可能是家庭作业[向Raymond道歉,这是一个面试问题而不是家庭作业,正如他的编辑/评论所表明的那样。但是,算法和添加的伪代码对于该目的仍然有效,我在最后添加了一些C代码]。您需要找到字符串末尾最长的回文。可以通过简单地从字符串的开头运行一个指针和从结尾运行一个指针来创建一种查看字符串是否为回文的算法,检查它们所指的字符是否相同,直到它们在中间相遇。像这样的

c# - 欧拉计划问题 3 帮助

我正在努力完成欧拉计划,但在问题03上遇到了障碍。我有一个适用于较小数字的算法,但问题3使用了非常非常大的数字。问题03:13195的质因数是5、7、13和29。600851475143的最大质因数是多少?这是我在C#中的解决方案,它已经运行了将近一个小时。我不是在寻找答案,因为我确实想自己解决这个问题。主要是寻求一些帮助。staticvoidMain(string[]args){constlongn=600851475143;//constlongn=13195;longcount,half,largestPrime=0;boolIsAPrime;half=n/2;for(longi