数据结构-8.6排序

数据结构-8.6排序

前言-数据结构

数据结构是需要反复咀嚼,不管什么时候都可以重中获取现在在开发中的遇到的问题答案。

基数排序

  • 定义

  • 采用“分配”和“收集”的办法,用对多关键码进行排序的思想实现对单关键码进行排序的方法。

  • 算法步骤

  • 具体实现时,基数排序包含分配和收集,分配是将第k (1≤k≤d) 个排序码相同素放到一个队列中(按第k个排序码排序),收集是得到这一趟的排序结果。

  • 例子
    在这里插入图片描述

  • 计算机存储过程
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 性能分析
  • 在基数排序的过程中,对于记录的个数为m,各记录的关键字位数为d,每一位有r种取值的待排序序列,其时间复杂度为O(d(n+r))。而每一趟分配的时间复杂度为O(n),每一次收集的时间复杂度为O®。
  • 所需要的辅助空间为2r个链表指针及n个指针域空间,所以其空间复杂度为O(n+2r))。
  • 基数排序是稳定的。

猜你喜欢

转载自blog.csdn.net/weixin_41732253/article/details/109894626
今日推荐