原文:算法与数据结构(十七) 基数排序(Swift 3.0版)

前面几篇博客我们已经陆陆续续的为大家介绍了 种排序方式,今天博客的主题依然与排序算法相关。今天这篇博客就来聊聊基数排序,基数排序算法是不稳定的排序算法,在排序数字较小的情况下,基数排序算法的效率还是比较高的。今天就来聊一下基数排序算法的原理以及代码的具体实现。 一 基数排序算法示意图 下方的基数排序算法的实现是利用 桶 来实现的,首先我们创建 个桶,然后按照基数入桶,基数的取值是从数字的低位到高位 ...

2016-12-21 09:41 0 3752 推荐指数:

查看详情

数据结构算法——排序算法-基数排序

目录 简单介绍 基本思想 思路分析 代码实现 推导实现 完整实现 大数据量耗时测试 注意事项 简单介绍 基数排序(radix sort)属于 分配式排序(distribution sort),又称 桶子法 ...

Thu Sep 02 05:47:00 CST 2021 1 273
数据结构算法-排序(九)基数排序(Radix Sort)

摘要 基数排序是进行整数序列的排序,它是将整数从个位开始,直到最大数的最后一位截止,每一个进位(比如个位、十位、百位)的数进行排序比较。 每个进位做的排序比较是用计数排序的方式处理,所以基数排序离不开计数排序。 逻辑 对整数依次从个位数、十位数...进行排序基数排序非常适合 ...

Wed Aug 25 05:38:00 CST 2021 0 196
数据结构Java基数排序(四)

基数排序:   基数排序分为两种:第一种是LSD ,从最低位开始排序, 第二种是 MSD 从最高位开始排。这里介绍第一种LSD排序算法。 首先,我们先了解什么是基数基数是根据具体的排序情况而定的,比如我们常见的基数是十进制-10,还有二进制-2。 其次,要熟记基数排序的思想:通过对每一个 ...

Tue Jun 19 20:03:00 CST 2018 0 846
算法数据结构(十四) 堆排序 (Swift 3.0)

上篇博客主要讲了冒泡排序、插入排序、希尔排序以及选择排序。本篇博客就来讲一下堆排序(Heap Sort)。看到堆排序这个名字我们就应该知道这种排序方式的特点,就是利用堆来讲我们的序列进行排序。“堆”其实就是一种有着特定结构的完全二叉树,下方将会详细的介绍一下堆。本篇博客讲的就是堆排序,首先我们先 ...

Mon Dec 12 17:36:00 CST 2016 0 3263
数据结构算法】非比较排序(计数排序、桶排序基数排序

计数排序 概念 一句话︰用辅助数组对数组中出现的数字计数,元素转下标,下标转元素 假设元素均大于等于0,依次扫描原数组,将元素值k记录在辅助数组的k位上 思路:开辟新的空间,空间大小为max(source)扫描source,将value作为辅助空间的下标,用辅助空间的改位置元素记录 ...

Sat Aug 07 23:52:00 CST 2021 0 197
算法数据结构(十五) 归并排序(Swift 3.0)

上篇博客我们主要聊了堆排序的相关内容,本篇博客,我们就来聊一下归并排序的相关内容。归并排序主要用了分治法的思想,在归并排序中,将我们需要排序的数组进行拆分,将其拆分的足够小。当拆分的数组中只有一个元素时,则这个拆分的数组是有序的。然后我们将这些有序的数组进行两两合并,在合并过程中进行比较,合并生成 ...

Fri Dec 16 18:04:00 CST 2016 0 1814
算法数据结构(十六) 快速排序(Swift 3.0)

上篇博客我们主要聊了比较高效的归并排序算法,本篇博客我们就来介绍另一种高效的排序算法:快速排序。快速排序的思想与归并排序类似,都是采用分而治之的方式进行排序的。快速排序的思想主要是取出无序序列中第一个值,然后通过比较将比该值小的元素放到该值的前方,将比该值大的元素放在该值的后方。这样一来该值前方 ...

Mon Dec 19 17:38:00 CST 2016 0 3713
算法数据结构(十三) 冒泡排序、插入排序、希尔排序、选择排序Swift3.0

本篇博客中的代码实现依然采用Swift3.0来实现。在前几篇博客连续的介绍了关于查找的相关内容, 大约包括线性数据结构的顺序查找、折半查找、插值查找、Fibonacci查找,还包括数结构的二叉排序树以及平衡二叉树的构建与查找,然后还聊了哈希表的构建与查找。接下来的几篇博客中我们就集中的聊一下常见 ...

Thu Dec 08 18:47:00 CST 2016 5 4860
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM