数据结构中排序的方法中稳定的有那些,不稳定的有那些(如快速排序等)

如题所述

稳定的
  冒泡排序(bubble sort) — O(n2)   鸡尾酒排序 (Cocktail sort, 双向的冒泡排序) — O(n2)   插入排序 (insertion sort)— O(n2)   桶排序 (bucket sort)— O(n); 需要 O(k) 额外 记忆体   计数排序 (counting sort) — O(n+k); 需要 O(n+k) 额外 记忆体   归并排序 (merge sort)— O(n log n); 需要 O(n) 额外记忆体   原地归并排序 — O(n2)   二叉树排序 (Binary tree sort) — O(n log n); 需要 O(n) 额外记忆体   鸽巢排序 (Pigeonhole sort) — O(n+k); 需要 O(k) 额外记忆体   基数排序 (radix sort)— O(n·k); 需要 O(n) 额外记忆体   Gnome sort — O(n2)   Library sort — O(n log n) with high probability, 需要 (1+ε)n 额外记忆体
不稳定
  选择排序 (selection sort)— O(n2)   希尔排序 (shell sort)— O(n log n) 如果使用最佳的现在版本   Comb sort — O(n log n)   堆排序 (heapsort)— O(n log n)   Smoothsort — O(n log n)   快速排序 (quicksort)— O(n log n) 期望时间, O(n2) 最坏情况; 对於大的、乱数串列一般相信是最快的已知排序   Introsort — O(n log n)   Patience sorting — O(n log n + k) 最外情况时间, 需要 额外的 O(n + k) 空间, 也需要找到最长的递增子序列(longest increasing subsequence)
温馨提示:内容为网友见解,仅供参考
无其他回答

数据结构中排序的方法中稳定的有那些,不稳定的有那些(如快速排序等)
稳定的 冒泡排序(bubble sort) — O(n2) 鸡尾酒排序 (Cocktail sort, 双向的冒泡排序) — O(n2) 插入排序 (insertion sort)— O(n2) 桶排序 (bucket sort)— O(n); 需要 O(k) 额外 记忆体 计数排序 (counting sort) — O(n+k); 需要 O(n+k) 额外 记忆体 归并排序 (merge ...

数据结构的排序算法中,哪些排序是稳定的,哪些排序是不稳定的?
一、稳定排序算法 1. 冒泡排序 2. 鸡尾酒排序 3. 插入排序 4. 归并排序 5. 基数排序 6. 合并排序 7. 基数排序 8. 二叉排序树排序 二、不稳定排序算法 1. 选择排序 2. 希尔排序 3. 快速排序 4. 堆排序 5. 平滑排序 6. 快速排序排序(Sorting)是计算机程序设计中的一种重要操作,它的功...

数据结构的排序算法中,哪些排序是稳定的,哪些排序是不稳定的?
快速排序、希尔排序、堆排序、直接选择排序不是稳定的排序算法 基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序是稳定的排序算法

在数据结构当中排序的稳定性有哪四种,不稳定的又有哪四种?
没听过,不过我只知道一种就是若带排序集合中有相同数据项,若排序后这些相同的数据项位置不变,就是稳定的排序

数据结构(C#版)中、什么是稳定排序?什么是不稳定排序?
所谓稳定排序,就是相等的两个数,排序前是什么顺序,排序后也是什么顺序。比如a=1,b=3,c=1,a,b,c这3个数进行排序,a本来在c前面,如果能保证排序后,a还是在c前面,就是稳定排序,否则就是不稳定排序。稳定排序有:冒泡排序、插入排序、归并排序、基数排序 不稳定排序有:选择排序、快速排序...

数据结构里面什么是稳定的排序,什么是不稳定的排序,怎么看,什么是稳定...
4,5,6(2),6(1),即6(1)和6(2)相比较排序前 他们的相对顺序改变了(第二个6排到第一个6之前了),那么就说这次排序是不稳定的 排序 像快速排序、希尔排序等算法都是不稳定排序算法,冒泡排序、插入排序等算法是稳定的排序算法。希望对你有帮助哦~~...

数据结构-八大排序算法的时间复杂度 稳定性
1:直接插入排序: 最好:待排序已经有序, 从前往后走都不用往里面 插入。 时间复杂度为o(n) 最坏:待排序列是逆序,每一次都要移位插入。 时间复杂度o(n^2) 是稳定排序 2:希尔排序: 最好:缩小增量的插入排序,待排序已经有序。时间复杂度o(n) 一般:平均时间复杂度o(...

不稳定的排序算法
堆排序是一种不稳定的排序算法。它是基于堆这种数据结构的一种排序算法。在堆排序中,元素的位置会经常发生变化,即使两个元素的值相同,它们在排序后的位置也可能会发生变化,因此堆排序是不稳定的。快速排序也是一种不稳定的排序算法。它的基本思想是通过一次排序将待排序的数据分割成独立的两部分,其中...

排序算法大合集-biubiubiu~
快速排序同样依赖分治法,通过选择一个基准值,将列表分为两部分,一部分小于基准,另一部分大于基准,然后递归地对这两部分进行排序。其平均时间复杂度为 O(nlogn),但在最坏情况下可退化为 O(n^2)。堆排序利用堆这种数据结构实现排序。堆是一种近似完全二叉树的结构,满足父结点总是小于(或大于)...

软件设计师考试 | 第三章 数据结构 | 排序
快速排序 是一种 不稳定 的排序方法 , 时间复杂度为O(nlogn),空间复杂度为O(logn)。方法: 对一组待排序记录的关键字,首先按堆的定义排成一个序列(即建立初始堆),从而可以输出堆顶的最大关键字(对于大根堆而言),然后将剩余的关键字再调整成新堆,便得到次大的关键字,如此反复,直到...

相似回答