标签: radix-sort

Python中字符串的基数排序

与 Python 的排序相比,我的基数排序函数输出排序但错误的列表:

My radix sort: ['aa', 'a', 'ab', 'abs', 'asd', 'avc', 'axy', 'abid']
Python's sort: ['a', 'aa', 'ab', 'abid', 'abs', 'asd', 'avc', 'axy']
Run Code Online (Sandbox Code Playgroud)

* 我的基数排序不做填充
* 它的机制是最低有效位 (LSB)
* 我需要利用每个单词的长度

以下是我的代码。

def count_sort_letters(array, size, col, base):
    output   = [0] * size
    count    = [0] * base
    min_base = ord('a')

    for item in array:
        correct_index = min(len(item) - 1, col)
        letter = ord(item[-(correct_index + 1)]) - min_base
        count[letter] += 1

    for i in range(base - 1):
        count[i + 1] += …
Run Code Online (Sandbox Code Playgroud)

python sorting radix-sort python-3.x counting-sort

2
推荐指数
1
解决办法
2892
查看次数

在线性时间内对 [log n] 不同值进行排序

我有一个 n 个整数的数组,它只能假设log n 个可能的值(和任何值)。例如,在 中S = [349,12,12,283,349,283,283,12],只有 3 个不同的数字(log 8 = 3)

我必须在短时间内对这个数组进行排序O(nlogn)。我应该使用哪种算法?也许基数排序和计数排序?它的分析呢?

sorting algorithm radix-sort

1
推荐指数
1
解决办法
1669
查看次数

为什么order()比sort.list()更快?

考虑一下代码:

a=runif(1000)
microbenchmark::microbenchmark(order(a,method="radix"))
microbenchmark::microbenchmark(sort.list(a,method="radix"))
Run Code Online (Sandbox Code Playgroud)

运行此代码,我看到的更好的性能order()相比sort.list().另一方面,如果我使用100000的样本大小,两个函数的性能几乎相同.

为什么会这样?

sorting r radix-sort

0
推荐指数
1
解决办法
167
查看次数

为什么这个基数排序 CUDA 代码仅对 32 个元素进行排序?

当我在 Visual Studio 15 中执行此代码时,它仅对 32 个元素进行排序。如果我将 WSIZE 设置为大于 32 或小于 32,它会显示与输出相同的未排序元素。谁能帮帮我吗?

我的系统信息。

处理器 - Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz、2400 Mhz、2 个核心、4 个逻辑处理器

内存 - 8GB

专用显卡 - NVIDIA GeForce 940M 4GB(384 个 CUDA 核心)

这是 WSIZE 设置为 32 的输出https://i.stack.imgur.com/mjgZI.jpg

这是 WSIZE 设置为 19 的输出https://i.stack.imgur.com/pXiG5.jpg

这是 WSIZE 设置为 50 的输出https://i.stack.imgur.com/8rPYo.jpg

#pragma once
#ifdef __INTELLISENSE__
void __syncthreads();
#endif

#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include <Windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <chrono>

using namespace std;
using namespace …
Run Code Online (Sandbox Code Playgroud)

sorting cuda gpu radix-sort visual-studio

0
推荐指数
1
解决办法
1286
查看次数

Radix按Python排序

我可以使用一些帮助.你如何在python中编写一个实现基数排序的程序?

这是一些信息:

基数10整数的基数排序是基于排序打卡,但事实证明排序是非常有效的.该排序使用主箱和10位数箱.每个bin都像一个队列,并按照它们到达的顺序维护其值.算法首先将每个数字放在主bin中.然后它考虑每个值的个位数.删除第一个值并将其放置在与个位数对应的数字仓中.例如,534被放置在数字仓4中,662被放置在数字仓2中.一旦主仓中的所有值被放置在相应的数字仓中,则从仓0到仓9收集值(在该订单)并放回主箱.该过程继续以十位数,数百位等为基础.处理完最后一位数后 主bin按顺序包含值.使用随机找到的randint创建1到100000之间的随机整数.使用list comphrension创建不同大小的列表(10,100,1000,10000等).要使用索引来访问数字,首先将整数转换为字符串.要使此类工作,所有数字必须具有相同的位数.要使用前导零填充零填充整数,请使用字符串方法str.zfill().对主bin进行排序后,将字符串转换回整数.要使用前导零填充零填充整数,请使用字符串方法str.zfill().对主bin进行排序后,将字符串转换回整数.要使用前导零填充零填充整数,请使用字符串方法str.zfill().对主bin进行排序后,将字符串转换回整数.

我不知道如何开始这个,任何帮助表示赞赏.谢谢.

python function radix-sort

-4
推荐指数
1
解决办法
1955
查看次数