稳定性 如果一个排序算法能够保留数组中 重复元素的相对位置 则可以被称为是 稳定 的 稳定的排序算法:插入排序、归并排序 不稳定的排序算法:选择排序、希尔排序、快速排序和堆排序 一般只有在稳定性是必要的情况下,稳定的排序算法才有优势。 各种排序算法的性能特点 | 算法 | 是否稳定 | 是否为原地排 ...
分类:
编程语言 时间:
2019-08-25 20:18:42
阅读次数:
109
一、排序算法 1、冒泡排序(Bubble Sort) 定义:是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶 ...
分类:
编程语言 时间:
2019-08-21 21:21:30
阅读次数:
103
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括: 关于时间复杂度: 平方阶 ...
分类:
编程语言 时间:
2019-08-21 11:20:44
阅读次数:
80
比较排序: 冒泡:两两交换 选择:选择末序列最大(最小)值,同对应位置交换 插入:从后往前扫描有序序列 希尔排序:又叫做缩小增量排序,希尔增量:n/2 n/4 ... 1,O(n^2),Hibbard增量:1,3,7,2hk-1,O(n^1.5);下界为O(nlog(2n)) 非比较排序: 桶排序: ...
分类:
编程语言 时间:
2019-08-20 12:52:14
阅读次数:
88
希尔排序增量的问题,引用一本数据结构书中所说: 图示希尔排序思想: ...
分类:
编程语言 时间:
2019-08-14 21:44:18
阅读次数:
75
希尔排序是插入排序的一种,也叫做缩减增量排序,是对插入排序的一种优化,但是不稳定。 ...
分类:
编程语言 时间:
2019-08-10 17:35:41
阅读次数:
86
个人觉得移位法就是借希尔排序进行分组,插入排序进行排序 注释是上一篇的交换法. 而且这种排序的真的很快 ...
分类:
编程语言 时间:
2019-08-07 09:37:43
阅读次数:
153
1.核心思想:希尔排序是插入排序的一种,是直接插入排序的一种改进版本,他们同属于插入排序类。这是一个不稳定的排序算法。采取跳跃分割的策略:将相距某个“增量”的记录组成一个子序列,这样才能保证在子序列内分别进行直接插入排序后得到的结果是基本有序而不是局部有序。2.代码实现: 3.稳定性分析:一次插入排 ...
分类:
编程语言 时间:
2019-08-06 13:50:35
阅读次数:
83
希尔排序(Shell Sort) 插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。 希尔排序是非稳定排序算法。 ...
分类:
编程语言 时间:
2019-07-29 21:47:17
阅读次数:
135