草庐IT

C++并行排序

全部标签

c# - 检查数组是否排序的最快方法

考虑到有一个从一个非常大的函数返回的数组。测试数组是否已排序的最快方法是什么?最简单的方法是://////Determinesifintarrayissortedfrom0->Max///publicstaticboolIsSorted(int[]arr){for(inti=1;iarr[i]){returnfalse;}}returntrue;} 最佳答案 您将必须访问数组的每个元素以查看是否有未排序的内容。您的O(n)方法几乎是最快的,无需任何关于数组可能状态的特殊知识。您的代码专门测试数组是否按较低索引处的较小值排序。如果这不

c# - .Net 4.0 中的并行功能

我一直在研究.Net4.0中一些新的并行功能的实用性。假设我有这样的代码:foreach(variteminmyEnumerable)myDatabase.Insert(item.ConvertToDatabase());假设myDatabase.Insert正在执行一些操作以插入到SQL数据库中。理论上你可以这样写:Parallel.ForEach(myEnumerable,item=>myDatabase.Insert(item.ConvertToDatabase()));您会自动获得利用多核的代码。但是如果myEnumerable只能由单个线程交互怎么办?Parallel类是否会

c# - 在 C# 中,如何对 "largest"值位于列表中间的列表中的项目进行排序

我被这个问题困扰了一段时间。我想获取一个列表并对其进行排序,以使价格最高的产品最终位于列表的中间。我也想做相反的事情,即确保价格最高的项目最终位于列表的外边界。想象这样一个数据结构..1,2,3,4,5,6,7,8,9,10在第一种情况下,我需要取回1,3,5,7,9,10,8,6,4,2在第二种情况下,我需要取回10,8,6,4,2,1,3,5,7,9列表可能有250条以上,数字不会均匀分布,也不会按顺序排列,我想尽量减少复制。这些数字将包含在Product对象中,而不是简单的原始整数。是否有我没有看到的简单解决方案?任何想法。所以对于那些想知道我在做什么的人,我正在根据计算的字体大

c# - 如何使用 C# 并行执行多个 "Pings"

我正在尝试计算一组服务器的平均往返时间。为了加快速度,我想并行执行ping。我编写了一个名为AverageRoundtripTime()的函数,它似乎可以工作,但是,由于我不太了解多线程,所以我想知道我所做的是否正确。请看一下我的代码,让我知道是否可以,或者是否有更好的方法来实现我想要的:publicvoidMain(){//Collectionofhosts.Listhosts=newList();//Add100hoststothecollection.for(Int32i=0;ihosts){//Collectionofthreads.Listthreads=newList();

c# - 为 UI 目的对枚举进行排序

假设我们有一个UI,在这个UI中我们有一个下拉菜单。此下拉列表中填充了枚举的翻译值。恭喜,我们可以按枚举的int值、枚举的名称以及枚举的翻译名称进行排序。但是如果我们想要与上述3种不同的排序方式呢?如何处理这样的需求? 最佳答案 实现你自己的IComparer:usingSystem;usingSystem.Collections.Generic;namespacetest{classProgram{enumX{one,two,three,four}classXCompare:IComparer{publicintCompare(X

c# - 在基于事件的异步模式上使用任务并行库

我正在编写一个网络应用程序。消息是这样通过传输发送的:Network.SendMessage(newFirstMessage());我可以注册一个事件处理程序,以便在该消息类型到达时调用,如下所示:Network.RegisterMessageHandler(OnFirstMessageReceived);事件被触发:publicvoidOnFirstMessageReceived(EventArgse){}我正在为我的网络应用程序编写一个自定义身份验证过程,它需要大约五条消息才能完成。如果不使用任务并行库,我将不得不在前面的事件处理程序中编写每个过程的下一步代码,如下所示:publi

c# - 排序列表并在排序后将特定元素保留在列表末尾

我有一个包含"Others"的字符串列表。我正在获取此下拉列表。我正在按字母顺序对这个列表进行排序。但是我需要"Others"总是在列表的末尾。我不想在排序后添加此元素,这是一种解决方案。有没有其他方法可以像使用.Sort()方法的自定义比较器一样做同样的事情。我试过如下但没有解决方案。publicclassEOComparer:IComparer{publicintCompare(stringx,stringy){if(x==null){if(y==null){//Ifxisnullandyisnull,they're//equal.return0;}else{//Ifxisnull

c# - 在 C# 中按字母顺序对数组进行排序

希望有人能帮忙。我创建了一个可变长度数组,它将接受多个名称输入。我现在想按字母顺序对数组进行排序并将其返回到控制台屏幕。我认为Array.Sort(names);会为我做这件事,但我抛出了一个异常。我一直在查看笔记、示例和在线内容,但似乎没有什么与我正在做的相符。到目前为止,我已经完成了以下工作。我快要在这里扯头发了!PS我已经尝试解决这个问题好几个小时了,我已经30多岁了,正在努力学习自己,所以请不要只说“做你的作业”我已经尝试解决这个问题但不能,所以我需要有人来解释我哪里出错了。今天是星期天,我正在努力做额外的工作,但没有笔记来准确地说明这一点usingSystem;usingSy

c# - 如何使用重复键对列表进行排序?

我有一组元素/键,我正在从两个不同的配置文件中读取它们。因此键可能相同,但具有与每个键关联的不同值。我想按排序顺序列出它们。我能做什么?我尝试使用SortedList类,但它不允许重复键。我该怎么做?例如,假设我有3个元素,键分别为1、2、3。然后我又得到一个具有键2(但值不同)的元素。然后我希望在现有key2之后但在3之前插入新key。如果我再次找到具有key2的元素,那么它应该在最近添加的key2之后。请注意,我使用的是.NET2.0 最佳答案 对于这种类型的事情,我更喜欢使用LINQ:usingSystem.Linq;...v

c# - 按时间对日期时间列表排序

我有一个日期时间列表,如果可能的话,我想使用lambda表达式对其进行排序。我的list:6/19/19798:00:00AM5/5/19807:00:00PM10/20/19825:00:00PM1/4/19846:00:00AM输出应按以下顺序:1/4/19846:00:00AM6/19/19798:00:00AM10/20/19825:00:00PM5/5/19807:00:00PM 最佳答案 简单地说,OrderByTimeOfDay:varlist=dateList.OrderBy(x=>x.TimeOfDay).ToLi