【蓝桥杯】省赛无忧班(Python 组)第 2 期 9.5桶排序

from itertools import chain
def bucket_sort(a, bucket_count):
    min_value, max_value = min(a), max(a)
    # 桶大小  
    bucket_size = (max_value - min_value + 1) // bucket_count
    res = [[] for _ in range(bucket_count + 1)]

    for x in a:
        idx = (x - min_value) // bucket_size
        res[idx].append(x)

        # 每个桶单独排序,可以采用其他排序算法  
    for sublist in res:
        sublist.sort()

    return list(chain(*res))
# 读入一个整数n  
n = int(input())
a = list(map(int, input().split()))
a = bucket_sort(a, min(n, 10000))
print(' '.join(map(str, a)))

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-02-21 04:54:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-21 04:54:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-21 04:54:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-21 04:54:01       18 阅读

热门阅读

  1. rust gui fltk

    2024-02-21 04:54:01       29 阅读
  2. Rabbitmq的几种模式的总结

    2024-02-21 04:54:01       30 阅读
  3. 学习数据接构和算法的第11天

    2024-02-21 04:54:01       31 阅读
  4. 【Git】切换分支【2024年2月19日】

    2024-02-21 04:54:01       29 阅读
  5. Spring设计模式之工厂模式创建Bean对象

    2024-02-21 04:54:01       28 阅读
  6. eNSP学习——RSTP基础配置

    2024-02-21 04:54:01       30 阅读
  7. 如何使用阿里云OSS进行前端直传

    2024-02-21 04:54:01       27 阅读
  8. 【Git】基本概念和使用方式

    2024-02-21 04:54:01       25 阅读