目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

Python全系列 教程

3567个小节阅读:5929.6k

收藏
全部开发者教程

鸿蒙应用开发

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(133)
赞(0)

基数排序

基数排序封面

基数排序(radix sort)利用数字各位之间的递进关系排序的算法,原理是依次对每一位进行排序,从而得到最终的排序结果

算法思路

  1. 取得数组中的最大数,并取得位数;

  2. 从最低位开始取每个位的数据,组成基数数组;

  3. 将基数组数据填充到原数组;

  4. 反复第2,3步。 第2部每轮向前取一位数,反复取到最高位结束

img

案例

image-20220920115655635

代码

特性

  • 时间复杂度为 $ O(nk) $:设数据量为 $n$、数据为 $d$ 进制、最大位数为$k$ ,则对某一位执行计数排序使用 $ O(n+d) $ 时间,排序所有 $ k $ 位 使用 $ O((n+d)k)$ 时间。通常情况下,$d$ 和 $k$ 都相对较小,时间复杂度趋向 $ O(n) $ 。

  • 空间复杂度为$ O(n+d) $、非原地排序:与计数排序相同,基数排序需要借助长度为 $ n$ 和 $d$ 的数组 rescounter

  • 稳定排序:当计数排序稳定时,基数排序也稳定;当计数排序不稳定时,基数排序无法保证得到正确的排序结果。

提示

基数排序也不是只能使用于整数

实时效果反馈

1. 关于基数排序算法,说法正确的是?

A 基数排序需要俩俩比较完整的数据

B 基数排序需要分配10个额外空间辅助排序

C 基数排序只能对整数排序

答案

1=>B

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2