尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

基数排序模板(Radix Sort)

基数排序模板(Radix Sort)
📅 发布时间:2026/6/19 19:43:01

📘 基数排序模板(Radix Sort)

动画演示:https://www.bilibili.com/video/BV1zN4y1e73F

核心思路

基数排序是按位排序的,它从最低位到最高位依次对数据进行排序。它采用的是多次稳定排序(比如计数排序)来处理每一位上的数字。比如对于整数,首先按个位进行排序,然后按十位、百位依次排序,直到最高位。

  1. 找到数组中的最大值,确定需要循环多少位。
  2. 对每一位执行一次 稳定的计数排序。
  3. 从最低位开始循环处理,直到最高位。

✅ C++ 模板代码

#include <bits/stdc++.h>
using namespace std;const int MAXN = 1000005; // 最大数据规模
int n, a[MAXN], tmp[MAXN], cnt[10]; // tmp临时数组,cnt计数数组// 基数排序函数
void radix_sort(int a[], int n) {int maxVal = *max_element(a, a + n); // 找最大值,确定位数int exp = 1; // 当前位数,1=个位,10=十位,100=百位...while (maxVal / exp > 0) { // 直到最高位// 1. 初始化计数数组for (int i = 0; i < 10; i++) cnt[i] = 0;// 2. 统计当前位的出现次数for (int i = 0; i < n; i++) {int digit = (a[i] / exp) % 10; // 取出当前位cnt[digit]++;}// 3. 前缀和,cnt[i] 表示 digit ≤ i 的元素个数for (int i = 1; i < 10; i++) cnt[i] += cnt[i - 1];// 4. 倒序遍历,保持稳定性for (int i = n - 1; i >= 0; i--) {int digit = (a[i] / exp) % 10;tmp[cnt[digit] - 1] = a[i];cnt[digit]--;}// 5. 将结果拷贝回原数组for (int i = 0; i < n; i++) a[i] = tmp[i];exp *= 10; // 进入下一位}
}int main() {ios::sync_with_stdio(false);cin.tie(nullptr);cin >> n;for (int i = 0; i < n; i++) cin >> a[i];radix_sort(a, n);for (int i = 0; i < n; i++) cout << a[i] << " ";cout << "\n";return 0;
}

🎯 示例输入输出

输入:

6
170 45 75 90 802 24

输出:

24 45 75 90 170 802

📌 模板特点

  • 使用 计数排序 作为子排序算法,保证稳定性。
  • 复杂度:
    • 时间复杂度: \(O(n \cdot d)\) ,其中 \(d\) 是最大数的位数。
    • 空间复杂度: \(O(n + 10)\) 。
  • 适用于 非负整数排序(若要处理负数,可以先把负数和非负数分开,再分别排序)。

相关新闻

  • ctfshow web32
  • [项目开发经验分享]基于强类型事件的类型参数传递问题 —— 在 .NET Winform项目中如何设计泛型事件总线以实现UI与核心层的解耦
  • 从Verizon数据泄露报告看企业安全防御的迫切变革

最新新闻

  • MC68336/376队列式ADC:多通道数据采集的硬件级解决方案
  • 无锡贵金属回收优质渠道排行|拒绝虚高报价,实测真实成交价 - 奢侈品回收评测
  • 全国大件物流怎么选更划算?四大线上渠道兼顾大件托运与小件寄递,手机一键下单上门揽收 - 时讯资讯
  • 06 剑指Offer阅读笔记
  • Article 5 Test Part
  • 藏在海口黄金市场的变现秘诀!2026行情解读,品类计价正规渠道全梳理 - 奢品小当家

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号