import java.lang.Math;
public class radixSort{
public static int getFreeSpace(Integer array[]){ //this function gets the first occurence of a null element in the array
int i;
for (i = 0; i < array.length;i++){
if (array[i] == null){
brea
我有以下代码:
def radixSort(A):
#get max amount of digits
A = sortByDigit(A, maxDigits) #this works
print(A) #prints A as sorted
if __name__ == "__main__":
A = [int(100*random.random()) for i in range(10)]
radixSort(A)
print(A) #prints unsorted
为什么在radixSort中更改A不会更改main方
我拥有的代码是这样的。我正在尝试将一个数字列表基数排序为一个列表列表,然后将该列表列表写入一个文件,每个单独的列表在不同的行上。如果我尝试使用f.write,它会给我一个预期的字符缓冲区错误。
from math import log
b = open("radix.in.txt").readlines()
a = [int(i) for i in b]
f = open("radix.out.txt", "w")
def getIndex(num, base, digit_num):
return (num // base ** d
我试图为整数实现一个右/LSB基排序,一旦它工作,我将尝试并行化它。我的顺序代码对于无符号数很好,但是一旦我向它抛出负整数,它就不会“看到”有符号的位,并以从0到n的正数(排序)整数和从-n到-1的负数(同样是排序的)整数混合在一起。
这是我的密码:
public class SeqRadix {
static void radix2(int[] a) {
// 2 digit radixSort: a[]
int max = a[0];
int numBit = 2;
int n = a.length;
我正在开发一个程序,利用RadixSort从文件中读取单词,并使用我的教授给我的算法按升序排序(要求该RadixSort按预期工作,所有条目必须是单词,所有单词必须是相同的长度)。我写了我的RadixSort课程:
编辑:请忽略initializeWords方法中的注释。他们会在那里进行稍后的测试。
public class RadixSort implements RadixSortADT{
private ArrayList<String> lowercaseArray;
private ArrayList<LinkedQueue<String>> a
这个问题到10月31日星期一还没有被纠正,(人们错误地回答它,就好像我要求修改array.sort,但我没有要求)
如何用基-msd算法覆盖单个数组(而不是JavaScript )的内置JavaScript排序方法?
我有基msd排序的算法,是
// radix most-significant-bit sort for integers
//arr: array to be sorted
//begin: 0
//end: length of array
//bit: maximum number of bits required to represent numbers in arr
fu
我的列表中大部分都是浮点数,我在用基数排序时出错了,您能帮忙吗?
def countingSortForRadix(inputArray, placeValue):
countArray = [0] * 10
inputSize = len(inputArray)
for i in range(inputSize):
placeElement = (inputArray[i] // placeValue) % 10
countArray[placeElement] += 1
for i in rang
我很好奇,与使用辅助数组以加快排序速度的变体相比,原地基排序是如何进行的。我实现了这两种方法,并在java.util.Arrays.sort(int[])上进行了测试。
种子: 1439451337582 Radixsort.InPlace.sort,12074毫秒。Radixsort.sort以6937毫秒为单位。Arrays.sort以16316毫秒为单位。数组相同:真
你认为如何?
Radixsort.java:
package net.coderodde.util;
import java.util.Arrays;
/**
* This class implements a ra
这是我现在拥有的代码。我尝试将基数排序应用于从文件读取的数字列表,并将排序后的列表写入另一个文件。
from math import log
b = open("radix.in.txt").readlines()
a = [int(i) for i in b]
f = open("radix.out.txt", "w")
def getIndex(num, base, digit_num):
return (num // base ** digit_num) % base
def newLists(size):
ret
下面是我的RadixSort函数(升序):
void RadixSort (int a[], int n)
{
int i, m=0, exp=1, b[MAX];
for (i=0; i<n; i++)
{
if (a[i]>m)
m=a[i];
}
while (m/exp>0)
{
int bucket[10]={0};
for (i=0; i<n; i++)
bucket[a[i]/exp%10]++;
我试图让这种基于队列的基数排序工作,但我似乎找不出它有什么问题。它使用文本文件作为输入媒介,当我试图编译它并使用文本文件运行它时,它会抛出大量错误。
在这一点上,任何建议都会有所帮助。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 10
#define SHOWPASS
//Compiled Using GNU GCC Compiler
void radixsort(int *a[], int n)
{
int i, b[MAX], m = *a[0],
我已经用Python写了一个基数排序的程序。但是当我执行代码时,我得到下面的错误消息max() arg is an empty sequence。下面是我的代码:
class RadixSort:
num=0
array=[]
def getData(self):
print 'Enter the number of elements you want to enter: '
num=int(input())
print 'Now enter the elements: '
我不知道为什么这对我来说太难了。我查看了wiki页面,以及伪代码(以及实际代码),试图了解基排序算法(关于桶)是如何工作的。
我是不是在调查错误的东西?我是不是应该调查一下桶的种类?有人能告诉我它是如何工作的吗?作为参考,这里有一个代码块,它应该执行基数排序:
// Sort 'size' number of integers starting at 'input' according to the 'digit'th digit
// For the parameter 'digit', 0 denotes the least
对于我的类,我们必须为基排序算法编写Java代码。我理解算法,我以为我有了解决方案,但是我的代码中出现了一个不兼容的类型错误,我不明白为什么。
import java.util.*;
public class RadixSort {
public static void radixSort(int[] list) {
// will be passed to getKey to decide what to divide the number by before %10
int div = 1;
// re
下面是一个用于对基排序方法进行排序的程序,但是它没有显示每个输入的正确输出。
def RadixSort(A):
RADIX = 10
maxLength = False
tmp , placement = -1, 1
while not maxLength:
maxLength = True
buckets = [list() for _ in range(RADIX)]
for i in A:
tmp = i / placement
buckets[tmp %
我正在尝试用二进制实现基数排序,因为我想检查位移位操作的速度是否与所需的步数相平衡。我的计数排序似乎是有效的,但是一旦我对基数排序进行了几次传递,结果就会中断。非常感谢您的帮助。 /*
* bits is to store the value of the current digit for each number in the input array
*/
function countSort(&$arr, $digit) {
$bits = $output = array_fill(0, NB_ELEMS, 0);
$count = [0,0];
/
我正在尝试制作基数排序函数,它使用基数排序作为基数来计算整数的位数,然后从最低有效位到最高有效位对数字进行排序。
我使用的是一个包含随机整数的数组。
我怎样才能让这个方法很好地工作呢?
我使用的是以下代码:
public static void sort( int[] a, int radix)
{
int i, m = a[0], exp = 1, n = a.length;
int[] b = new int[10];
for (i = 1; i < n; i++)
if (a[i] > m)
我的程序使用CUDA基数排序类。从CUDA 4.0更新到4.2后,一个类辅助初始化函数崩溃,并显示消息"Stack around the variable 'devprop‘is corrupted“(堆栈围绕变量’devprop‘已损坏)。我已经隔离了这个问题,并注释了一些函数代码,发现cudaGetDeviceProperties正在破坏devprop。我只是不知道为什么会发生这种情况,也不知道如何解决这个问题。我的设置是CUDA4.2,开发驱动程序301.32,Nsight 2.2,Windows7 64位,为Win32编译。以下代码片段具有crashing ()辅助函数
我需要一些帮助来实现基数排序算法使用分布计数排序,我知道我需要做什么,但我不知道如何做。
在下面你可以找到我的代码,我很难将那些不太重要的数字关联到这些数字所来自的字符串,以便对输入数组进行排序。
public class RadixSort {
public static void radixSort(String[] a, int w) {
//throw new UnsupportedOperationException();
// read LSD decimal digits or letter
我终于实现了基于十进制的基数排序,但我想将其转换为按位排序。
void LSD_radixSort (unsigned int * A, int size, int r)
{
// Find the maximum number to know number of digits
int m = getMax(A, size);
// Do counting sort for every digit. Note that instead of passing digit
// number, exp is passed. exp is 10^i wher
我正在处理在C++中优化基排序代码的任务,我需要缩短执行时间,我的代码正在工作,看起来如下所示:
void RadixSort::RadixSortNaive(std::vector<long> &Arr) {
long Max_Value = findMax(Arr);
int Max_Radix = 1;
while (1) {
if (Max_Radix >= Max_Value) break;
Max_Radix = Max_Radix*radix_;
}
for (int i = 1; i < Max_Radix; i = i*r