radix-sort相关内容
我正在阅读 CUB 文档和示例: #include //或等效地 __global__ 无效 ExampleKernel(...){//为 128 个线程专门化 BlockRadixSort,每个线程拥有 4 个整数项typedef cub::BlockRadixSort块基数排序;//为 BlockRad
..
我想使用队列创建一个基数排序实现. 我不知道我的代码的哪一部分有问题,或者我应该阅读哪些资源.我的代码可能完全错误,但这是我没有任何帮助的实现(我还没有参加数据结构和算法课程). 我创建了一个函数,但它不起作用.在做研究时,我看到了一些代码示例,但对我来说它们似乎更复杂. 首先我想找到所有整数的最低有效位然后将它们排序在下标匹配的队列元素中,then 排序后将所有队列复制到第 1
..
尝试在win-XP + VS2005下编译Merrill的基数排序时出现错误. 错误:asm操作数类型size(1)与约束'r'隐含的类型/大小不匹配. 它在以下代码中发生 #define B40C_DEFINE_GLOBAL_LOAD(base_type,dest_type,short_type,ptx_type,reg_mod)\asm("ld.global.cg."#ptx_
..
我想对C中的浮点数进行基数排序.下面是我的代码.但是,我的输出不正确.例如,如果我用3.1,-5和1运行代码,则我的排序值将打印为3.000000,-5.000000和1.000000. 我知道要正确地从浮点数转换为int并转换回浮点数,我需要应用以下逻辑,但是由于我尝试了很多错误,因此我不确定如何将其集成到rfloat()中. 我怎样才能正确地对浮点数应用按位基数排序? floa
..
如何使用Radix Sort对数组中的一些浮点数据进行排序?我认为我应该将所有数据乘以10的最小幂,从而使它们成为整数.但是我不知道如何理解这种合适的力量.这是用于对整数数组进行排序的c ++代码.有人可以帮我吗? #include使用命名空间std;//在arr []中获取最大值int findMax(int arr [],int n){int max = arr [0]
..
注意: 我已经对此程序提出了一个具体问题 说明: 我需要实现一个程序,该程序对0到99999之间的数字进行递归排序(这基本上是Radix排序).该过程本身就是一个简单的例子:用户在main方法中键入一个包含这些数字的数组.然后,main方法调用排序方法,在此方法中,我创建了一个名为'space'的二维数组,该数组包含10行和1列.然后,我将数组中的每个数字除以数字,第一次运行将为10.
..
我需要实现一个程序,该程序对0到99999之间的数字进行递归排序(这基本上是Radix排序).该过程本身就是一个简单的例子:用户在main方法中键入一个包含这些数字的数组.然后,main方法调用排序方法,在此方法中,我创建了一个名为'space'的二维数组,该数组包含10行和1列.然后,我将数组中的每个数字除以数字,第一次运行将为10.000.因此,例如23456/10000 = 2,3456 =
..
我正在尝试对1-100之间的随机数的ArrayList进行基数排序.我快到了,我无法弄清楚十位数的排序.另外,我放置了一些println语句来测试存储桶中的实际内容,并且某些存储桶中不应该存在一些奇怪的数字. import java.util.ArrayList; import java.util.Random; private static ArrayList newA
..
注意:我正在使用python 3. 我正在尝试按字母顺序对单词列表进行排序. 这是我的排序: def radix_sort(List, length): buckets = [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [],
..
为什么快速排序(或内向排序)或任何基于比较的排序算法比基数排序更常见?尤其是对数字进行排序. 基数排序不是基于比较的,因此可能比O(n logn)快.实际上,它是O(k n),其中k是用于表示每个项目的位数.而且内存开销不是关键,因为您可以选择要使用的存储桶数,并且所需的内存可能少于mergesort的要求. 与缓存有关吗?还是访问数组中整数的随机字节? 解决方案 我想到了两个
..
我正在阅读基数,计数和存储桶排序的定义,似乎所有这些都只是下面的代码: public static void sort(int [] a,int maxVal){ int [] bucket = new int [maxVal + 1]; for(int i = 0; i bucket [i] = 0; } for(int i = 0; i bucket [a [i
..
我正在尝试实施American Bucket Sort。 Wiki表示:“首先计算将落入每个容器中的对象的数量,其次将每个对象放入其存储桶中。” 在第二阶段,放置对象时在适当的存储桶中,是否需要使用辅助阵列?有没有办法通过在线性时间内交换数组元素来做到这一点? 解决方案 假设您的意思是 http://en.wikipedia.org/wiki/American_flag_sort ,
..
我正在尝试优化Radix Sort代码,因为我觉得它还有空间,因为书中和网络上的传统代码似乎是彼此的直接复制,并且它们的工作速度非常慢,因为它们采用任意数字,例如10为模运算.我已经尽可能地优化了代码,也许我可能错过了一些优化技术.在这种情况下,请赐教. 优化动机: http://codercorner.com/RadixSortRevisited.htm http://stereops
..
我正在阅读CUB文档和示例: #include //或等效地 __global__ void ExampleKernel(...) { //为128个拥有4个整数项的线程专门化BlockRadixSort typedef cub :: BlockRadixSort
..
我有一组整数值,我想使用Thrust对它们进行排序。在这种排序中只使用一些高位/低位有可能。如果可能,我不想使用用户定义的比较器,因为它将使用的算法从radix-sort更改为merge-sort,并增加了很多时间。 当所有数字在位上具有相同的值时,在排序时该位被跳过,因此使用最低可能的位数并且希望它是足够的是可行的。 (即:使用具有8位的char和将高3位设置为0的5位) 示例:
..
我在C ++中编写了一个间接基数排序算法(通过间接,我的意思是它返回项目的索引): #include #include #include template void radix_ipass( It1 begin,It1 const end, It2 const
..
我有这个code和它在处理过程中崩溃。系统给出信息“文件名.exe停止工作。什么是错在这里? 我声明数组作为全球能有元素的那么大数目,但它仍然无法正常工作。 的#include<&stdio.h中GT; #包括LT&;&stdlib.h中GT;#定义MAX百万 #定义SHOWPASS无效打印(INT *一,INT N){ INT I; 对于(i = 0; I< N;我++)
..
我想创建一个基数排序实现使用队列。 我无法弄清楚这我code的一部分有问题或资源,我应该阅读。 我的code可以完全错了,但这是我的执行没有任何帮助的(我还没有采取一个数据结构和放大器;算法当然还)。 我创建了一个功能,但没有奏效。虽然做研究,我看到一些code样品,但他们似乎对我来说更加复杂。 首先我想找到所有整数的最低位显著 ,然后在队列元素,其下标匹配排序, ,然后排序后全部复制
..
我一直在研究四周,虽然我已经想通了,使用基数排序按字母顺序排列的字符串数组的总体思路,我知道我走错方向。 这是我迄今为止: 无效基数排序(字符串* sortMe,诠释L) { 队列<串GT; *节=新队列<串GT; [27]; //拥有A-Z,以及一种对于那些空值终止字符串。 的for(int i = 0; I< numElements个;我++) {
..
我实施2个字节的基数排序。这个概念是使用计数排序,向整数,则高16位的低16位排序。这使我在2次迭代运行排序。第一个概念,我不得不试图弄清楚如何处理的底片。因为符号位将被翻转为负数,则在十六进制形式中,这将使底片大于阳性。为了解决这个问题我翻转的符号位时,它是正的,以使[0,2亿元)= [128 000 000 000 255 255 ...)。并且当它是负我翻转的所有位,以使其范围为(000 0
..