排序基础 排序方法分两大类,一类是比较排序,快速排序(Quick Sort)、归并排序(Merge Sort)、插入排序(Insertion Sort)、选择排序(Selection Sort)、希尔排序(Shell Sort)、堆排序(Heap Sort)等属于比较排序方法,比较排序方法 ...
排序算法 Sort 引言 我们平时对计算机中存储的数据执行的两种最常见的操作就是排序和查找,对于计算机的排序和查找的研究,自计算机诞生以来就没有停止过。如今又是大数据,云计算的时代,对数据的排序和查找的速度 效率要求更高,因此要对排序和查找的算法进行专门的数据结构设计, 例如我们上一篇聊到的二叉查找树就是其中一种 ,以便让我们对数据的操作更加简洁高效。 这一篇我们将会介绍一些数据排序的基本算法和 ...
2017-10-23 22:21 0 3225 推荐指数:
排序基础 排序方法分两大类,一类是比较排序,快速排序(Quick Sort)、归并排序(Merge Sort)、插入排序(Insertion Sort)、选择排序(Selection Sort)、希尔排序(Shell Sort)、堆排序(Heap Sort)等属于比较排序方法,比较排序方法 ...
摘要 选择排序的逻辑是先遍历比较出序列中最大的,然后把最大的放在最后位置。 遵循这个逻辑,用代码实现时,做到1.减少比较次数之外,这里引入一个新的指标 - 稳定性,2.保证排序过程中的稳定性也是一个优化处理 代码逻辑 从头遍历序列,分别和尾部元素比较,记录最大的元素坐标 ...
摘要 堆排序需要用到一种数据结构,大顶堆。大顶堆是一种二叉树结构,本质是父节点的数大于它的左右子节点的数,左右子节点的大小顺序不限制,也就是根节点是最大的值。 这里就是不断的将大顶堆的根节点的元素和尾部元素交换,交换到大顶堆没有可以被交换的元素为止。后面再说大顶堆的逻辑。 逻辑 ...
摘要 看希尔排序需要先想象出一个二维的矩阵,在这个矩阵中,有多少列数据全看步长(一定的规则得到)。处理完之后,就再接着用另一个步长组成矩阵处理。直到步长全部使用完。 这里的巧妙之处就是没有把序列先处理成二维数组,而是通过与步长配合,依旧在一维的序列中处理。 逻辑 希尔排序 ...
摘要 基数排序是进行整数序列的排序,它是将整数从个位开始,直到最大数的最后一位截止,每一个进位(比如个位、十位、百位)的数进行排序比较。 每个进位做的排序比较是用计数排序的方式处理,所以基数排序离不开计数排序。 逻辑 对整数依次从个位数、十位数...进行排序。基数排序非常适合 ...
摘要 桶排序和基数排序类似,相当于基数排序的另外一种逻辑。它是将取值范围当做创建桶的数量,桶的长度就是序列的大小。通过处理比较元素的数值,把元素放在桶的特定位置,然后遍历桶,就可以得到有序的序列。 逻辑 创建一定数量的桶(数组或者链表)。制定规则将序列中的元素均匀地分布在不同的桶 ...
在《algorithm》中,作者单独讲mergesort作为一个小节,可以看出它的重要程度。 首先来看一下归并排序的运用场景是怎样的:将两个已排序列进行排列。 主要的思想便是:比较a[i]和b[j]的大小,若a[i]≤b[j],则将第一个有序表中的元素a[i]复制到r[k]中,并令i和k分别 ...
分为:插入排序、交换排序、选择排序和归并排序。 插入排序(Insertion Sort) ...