一、排序分类 (1)插入类:直接插入排序、折半插入排序、希尔排序 (2)交换类:冒泡排序、快速排序 (3)选择类:简单选择排序、堆排序(属于树形选择排序) (4)归并类:2-路归并排序 (5)分配类:基数排序 二、排序稳定性及其原因 (1)稳定排序:直接插入排序、折半插入排序 ...
排序方式 时间复杂度 空间复杂度 稳定性 平均情况 最坏情况 最好情况 插入排序 O n O n O n O 稳定 希尔排序 O n . O 不稳定 冒泡排序 O n O n O n O 稳定 快速排序 O nlogn O n O nlogn O logn 不稳定 选择排序 O n O n O n O 不稳定 堆排序 O nlogn O nlogn O nlogn O 不稳定 归并排序 O nl ...
2018-03-13 16:28 0 1835 推荐指数:
一、排序分类 (1)插入类:直接插入排序、折半插入排序、希尔排序 (2)交换类:冒泡排序、快速排序 (3)选择类:简单选择排序、堆排序(属于树形选择排序) (4)归并类:2-路归并排序 (5)分配类:基数排序 二、排序稳定性及其原因 (1)稳定排序:直接插入排序、折半插入排序 ...
排序的稳定性 2019-11-10 09:42:11 by冲冲 1、稳定性 ① 定义:能保证两个相等的数,经过排序之后,其在序列的前后位置顺序不变。(A1=A2,排序前A1在A2前面,排序后A1还在A2前面) ② 意义:稳定性本质是维持具有相同属性的数据的插入顺序,如果后面 ...
转载自http://www.cnblogs.com/codingmylife/archive/2012/10/21/2732980.html 分析一下常见的排序算法的稳定性,每个都给出简单的理由。 冒泡排序冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换 ...
排序算法的稳定性定义: 一个数组中几个相同的关键字经过排序以后相对位置仍然不变,那么称改排序算法的是稳定的。 举个例子,在一个数组中,紫色的10排在红色的10前面,经过排序算法之后,紫色的10位置仍然排序红色的10之前,那么这个算法就是稳定的。 下面是几种排序算法的总结: 1. ...
转载自http://www.cnblogs.com/codingmylife/archive/2012/10/21/2732980.html 分析一下常见的排序算法的稳定性,每个都给出简单的理由。 冒泡排序 冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较 ...
1.时间复杂度为O(n^2)排序的稳定性:原序列中相同的值,在排好顺序之后,能够保证原来的相同的值相对顺序保持不变。在一个算法中,如果所有相同值,在排完序之后,值的顺序不会被打乱,那么这个算法就是稳定的。如果会被打乱,那么这个排序就不具备稳定性。 如果在相等情况下也进行交换,那么冒泡排序就不是稳定 ...
主要的排序算法有八种:直接插入排序,希尔排序(这两种统称为插入排序),冒泡排序,快速排序(这两种统称为交换排序),直接选择排序,堆排序(这两种统称为选择排序),归并排序,基数排序。今天我们就讨论一下它们各自的稳定性。如果对算法不熟悉,可以查看我的另外几篇博客,然后再来阅读。 一、什么是算法 ...
本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者不稳定的人准备的。 首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai = Aj,Ai原来在位置前,排序后Ai还是要在Aj ...