我正在尝试使用下面的代码在基于整数的链表上实现基数排序。#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_DIGITS 10 // maximum number of ...
我正在尝试使用下面的代码在基于整数的链表上实现基数排序。#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_DIGITS 10 // maximum number of ...
我正在尝试按增长对 1d 数组进行基数排序,但它没有排序:它显示相同的数组。 当我试图找出错误时,编译器说没有错误。 我的代码是(我使用 Programiz 网站上给出的示例来编写最大和基数部分: https ://www.programiz.com/dsa/radix-sort): 显示的结果是 ...
我无法理解为什么当我将输入转换为二进制时,我的带有计数排序的基数排序代码不能正确地对输入进行排序。 我基本上对表示为十进制的字母使用相同的代码,它们工作得很好,但在这里它甚至还差得远。 下面是参与二进制基数排序的代码: 安慰: 另一种情况: 任何帮助将不胜感激! ...
我正在学习 C++ 和学习链表。 我目前正在尝试为这种类型的列表进行基数排序,但我的方法不起作用,所以我想知道是否有人可以建议我如何做到这一点。 这是我的代码: function numberOfDigits()为您获取列表最大数量的位数,而counter()获取列表中元素的数量。 inser ...
我的任务是在没有二维数组或列表的情况下“从头开始”进行基数排序。 这是我的代码,可以正常工作......直到你引入多 4 位数字的数字。 } 错误发生在dest[count[temp]]=b[j]; 接近尾声。 我怀疑由于相对复杂的基数隔离而出现问题。 我太纠结了,看不到可能的解决方案。请帮忙! ...
这是我的代码: // get digit at a specific location. // getDigit(12345,0) -> output: 5 function getDigit(num1, i) { num1 = String(num1); num1 = num ...
我正在学习 dsa,我尝试在 c 中实现基数排序。 我使用了 programiz 的本教程。 我实现了它,但是他们使用的数字数组得到了正确排序,但是当我使用不同的数组时,它显示了一些垃圾值。 当我插入这个 int 数组 [] = {121, 432, 564, 23, 1, 45, 788}; 输 ...
我被困在这个问题上:给定 [0, 1, ... , n^5 - 1] 范围内的 n 个整数数组,如何在线性运行时对它们进行排序? (O(n)) 更一般地说,如果范围是 [0, 1, ... , n^c - 1] (c 是一个大于 1 的自然常数),你会怎么做? 描述一个正确的算法并解释。 我的第一 ...
我的列表中大部分都是浮点型数字,我在使用基数排序时遇到错误,你能帮忙吗? 我得到一个错误列表索引必须是整数或切片,而不是浮点数 ...
我正在尝试使用 C 中的 CUDA 来实现一个基数排序算法,以便能够并行化它; 代码如下: 为了运行它,我使用的是 Google Colab。 每个块的最大线程数固定为 32(网格变量),而使用的块数在 main 中根据需要排序的元素数(块变量)计算。 当我开始更改要排序的数组中的元素数量(main ...
我正在处理优化 C++ 中的基数排序代码的任务,我需要减少执行时间,我的代码正在运行,它看起来像这样: 但是,我确信仍有改进的余地。 我一直在尝试使用 OMP 库实现并行化,但似乎没有任何效果。 有什么办法可以改进以前的代码吗? 也许改进循环或任何其他代码优化技术。 ...
我从集合 {0,1,…,n} 中得到一个整数数组,其中我需要在 O(n) 时间内对数组进行排序。 但我不确定是否对这个问题进行基数/计数排序。 任何人都可以就此提出您的建议吗? ...
我正在尝试使用 OpenMP 并行化以下基数排序算法 C 代码,但我对使用 OpenMP 子句有一些疑问。 特别是,有一些循环我怀疑它们是否可以并行化。 这是我正在处理的代码: 特别是,我不确定像下面这样的for循环是否可以并行化: for (i = 1; i < 10; i++ ...
我正在创建一个排序可视化器项目。 目前我正在使用基数排序算法。 我将盒子的高度(排序项目以帮助可视化)限制为三位数。 这意味着基数排序有 3 次迭代(首先我们对单位位置进行排序,然后是数十和数百)。 当涉及到第二次迭代时,问题就出现了。 我控制台记录当前排序数组中项目的数字,它匹配它的高度,但颜色可 ...
我的代码中有一个循环,大部分 CPU 时间都花在了这个循环上: 变量:digit_counts、arr、intermediate_arr都在memory(heap和bss)。 AMD 分析器显示许多周期用于读取和写入这些 memory 位置。 有什么办法可以优化这个吗? ...
我正在尝试使用 ByteBuffer.allocate() 编写基数代码我了解到基数排序的时间复杂度为 O(kn),我编写了这段代码以使 k=4。 我还写了快速排序,发现我的基数排序比快速排序慢 2~3 倍。 是因为memory访问效率低吗? 这是我的基数排序代码。 ...
假设您有一个大小为n的 integer 数组A 。 你事先知道A的O(√n)个元素可以大于2020(n)^(5) − 5n ,而 A 的其余元素在[1, 2020n^5 − 5n]范围内。 事实证明,在这种情况下,在最坏的情况下, A可以在O(n)时间内排序。 我正在尝试解决这个有趣的算法问题,我的 ...
如何使用两次计数排序对数组的元素进行排序? 是否会使用两次精确计数排序? 我知道它与基数排序(这是计数排序的子程序)有关,其中元素通过一次考虑每个数字进行排序。 更多细节:- https://www.geeksforgeeks.org/sort-n-numbers-range-0-n2-1-line ...
在我的项目中,我发现排序性能是瓶颈。 经过一番谷歌搜索,我想出了基数排序的并行版本(以 256 为基数)。 但是,它的行为不像我预期的那样。 首先将基数更改为 2^16 不会导致任何加速,理论上应该是 2。 第二个在我的并行版本中,我将它分成 4 个部分(核心数)并对它们进行基数排序,然后合并结果 ...
我正在尝试为字符串实现基数排序,但是我只能通过字符串长度来实现。 我想按长度和字母顺序对字符串数组进行排序。 甚至可以用基数排序来做到这一点吗? 这是我的代码: 我的示例数组是这样的 和预期的 output: ...