草庐IT

C++并行排序

全部标签

c++ - 类型的编译时排序

我一直在寻找一种在编译时对类型进行排序的方法。例如,这对于实现(高效的)编译时类型集很有用。一个显而易见的方法是,如果有一种方法可以将每种类型映射到一个唯一的整数。previousquestion的答案关于该主题的内容简洁地说明了为什么这很困难,而且它似乎同样适用于尝试获得订单的任何其他方式:thecompilerhasnowayofknowingallcompilationunitsandthelinkerhasnoconceptofatype事实上,对编译器的挑战是相当大的:它必须确保在任何调用中,对于任何源文件,它为给定类型返回相同的整数/它在任何两个给定类型之间返回相同的顺序,

c++ - 测量相互依赖线程的并行计算时间

我有一个关于并行程序中的运行时测量的问题(我使用的是C++,但我认为这个问题更笼统)。一些简短的解释:3个线程并行运行(pthread),以不同的方式解决相同的问题。每个线程都可以将信息传递给另一个线程(例如,一个线程获得的部分解决方案,但另一个线程尚未获得)以加速其他线程,这取决于他自己的状态/他自己计算中的可用信息。一旦第一个线程准备就绪,整个过程就会停止。现在我想要一个独特的时间测量来评估从开始到问题解决的运行时间。(最后,我想确定通过并行计算使用协同效应是否比在单线程上计算更快)。在我看来,问题在于(由于操作系统暂停/取消暂停单线程),在进程中传递信息的时间点在每个进程的状态下

c++ - 适用于 Linux 的免费并行 (MPI) 调试器?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭7年前。Improvethisquestion是否有用于调试MPI并行化C++代码的非商业/免费Linux工具?像AllineaDDT或TotalView这样的东西?我知道如何使用gdb附加到并行运行代码的技巧。但是我发现它们只是为了进行一些快速调试而变得乏味。那么是否有直接支持并行调试的基于GUI的工具(可能基于gdb)?

c++ - 排序数组/文件 I/O C++

我想知道是否有人可以帮助我对这个数组进行排序,我对如何在这个项目中准确地实现它有点迷茫。因为它是HW不要透露整个答案,而是将我推向正确的方向。项目如下:编写一个程序,读取一行文本并输出文本中出现的所有字母的列表以及每个字母在该行中出现的次数。以用作标记值的句点结束该行。字母应按以下顺序使用:从最高到最低。假设输入全部使用小写字母。几个问题。1.我对数组进行排序的方式是否正确?2.在将排序数组放入我的代码之前,当代码编译时出现空白屏幕。有什么办法可以解决这个问题?如果写得不好,我们深表歉意,在此先感谢您的帮助!inlcude#inlcudeusingnamespacestd;voidin

c++ - 对一组数字进行排序最快的数据结构(和排序算法)是什么?

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭9年前。Improvethisquestion我需要一个数据结构来保存一组数字并尽快对它们进行排序。我认为列表会更好,因为向列表中插入新数字比vector更容易(后者需要在插入后复制元素)。但是,遍历链表(我使用排序列表作为从unordered_map中获取对象的查找)可能会慢得多,因为内存分散在整个堆中。我正在考虑使用map,但由于不连续的性质,这不会也有不好的内存访问吗?静态分配的数组(有很多空白空间)和快速排序算法是我想到的另一个想法.....

c++ - 在 C++ 中对版本号数组进行排序

给定一个像这样的版本号数组:vectorv={"9.8.17.5295","9.13.0.0","12.3.9.1017","25.3.6.1"};用C++对它们进行排序的最佳方法是什么?当然,这里的问题是我们不能只按字典顺序对它们进行排序,而是必须将每个字符串拆分为组件并按数字比较这些组件。在Python中,它可以像这样完成:v.sort(key=lambdax:tuple(map(int,x.split('.'))))但如何在C++中执行此操作?与这个单线相比,我能想到的任何东西看起来都相当麻烦。到目前为止我发现的最好的是:arraysplitversion(conststring

Java查询es数据,根据指定id检索(in查询),sql权限过滤,多字段匹配检索,数据排序

Java集成Elasticsearch数据查询Java集成Elasticsearch,进行索引数据查询,并进行sql权限过滤,指定id检索(in查询),多字段匹配检索,数据排序。由于权限过滤是根据sql语句判断当前用户或其部门可查询的数据,所以采用以下方法:1.通过sql过滤出当前用户可查询的数据id集合idsList;2.将当前用户可查询的数据id集合idsList通过QueryBuilders.idsQuery()进行查询,类似Mysql的in(’‘,’‘,’')查询。Java代码1.action代码 publicvoidsq_list(){ //获取数据 PrintWriterwri

DS:八大排序之归并排序、计数排序

                        创作不易,感谢三连支持!! 一、归并排序1.1思想归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(DivideandConquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 还有一个关键点就是:归并一定要先拷贝到一个新数组里面,再拷贝到原数组!! 1.2递归实现归并排序根据上面的思路,我们来实现代码:void_MergeSort(int*a,intbegin,intend,int*temp){

c++ - 排序 : Is this performance difference for real or am I doing something wrong?

我需要对很多由8个float组成的小数组进行排序。最初我使用的是std::sort但对其性能不满意,我尝试了由此生成的比较交换算法:http://pages.ripco.net/~jgamble/nw.html测试代码如下:templateboolPredDefault(constT&a,constT&b){returna>b;}templateboolPredDefaultReverse(constT&a,constT&b){returnavoidSort8(T*Data,bool(*pred)(constT&a,constT&b)=PredDefault){#defineCmp_S

python - 快速排序实现 - Python

我正在尝试在Python中实现快速排序算法(https://en.wikipedia.org/wiki/Quicksort)。我在C++中成功实现了该算法,但它在Python中给出了奇怪的结果。C++代码如下://Quicksortimplementation//AnchitVirmani-27/10/201502:07AM#includeusingnamespacestd;voidswap(int*a,int*b){intt=*a;*a=*b;*b=t;}voidquick_sort(intarr[],intl,intr){if(l这是我用Python编写的代码:defquick_s