排序算法总结

简介: 经典排序算法总结

排序算法总结(个人理解版):

  • 第Ⅰ类:插入排序(后边元素依次与前边元素比较排序);
  • 第Ⅱ类:选择排序(后边元素编组,选最小与最前元素交换位置)、谢尔排序(选择排序的改进,分组的方法不同)
  • 第Ⅲ类:冒泡排序(1/2比较,2/3比较,依次类推)、快速排序(分组后冒泡)
  • 第Ⅳ类:堆积排序(二叉树结构排序,建立堆)
平均时间复杂度 最坏时间复杂度 最好时间复杂度 空间复杂度 比较次数 交换次数 排序趟数
插入排序 O(n2) O(n2) O(n) O(1) 最好为n-1,最差为n(n-1)/2 最好为0,最差为n(n-1)/2 n-1
谢尔排序 O(nlog2n) O(nlog2n) O(n1.3) O(1) 最好为nlog2n,最差为n2 与gap有关,n-gap log2n
泡排序 O(n2) O(n2) O(n) O(1) n(n-1)/2 逆序数 与原始状态有关
快速排序 O(nlog2n) O(n2) O(nlog2n) O(log2n)~O(n) nlog2n,最差为n(n-1)/2 具体分析 与原始状态有关
选择排序 O(n2) O(n2) O(n2) O(1) n(n-1)/2 0~(n-1) n-1
堆积排序 O(nlog2n) O(nlog2n) O(nlog2n) O(1) nlog2n 具体分析 n-1
相关文章
|
3月前
|
搜索推荐 算法 Java
常见的排序算法
简介:本文介绍了排序算法的基础知识,包括常见的几种排序方法及其时间复杂度,特别区分了基于比较和非比较的排序算法。对于初学者,建议掌握基本概念;而对于进阶学习者,则需深入了解各类算法的特点、适用场景及其实现细节,如快排、归并在不同数据条件下的表现,以及非比较排序算法在特定情况下的优势。
69 0
|
10月前
|
搜索推荐 算法 C语言
c排序算法
c排序算法
56 0
|
5月前
|
搜索推荐 Java Go
深入了解选择排序算法
深入了解选择排序算法
43 4
|
9月前
|
搜索推荐 算法 Python
排序算法(2)
排序算法(2)
|
10月前
|
搜索推荐
常见的几种排序算法
常见的几种排序算法
73 1
|
10月前
|
搜索推荐 C#
C#实现选择排序算法
C#实现选择排序算法
60 2
|
搜索推荐 算法 Shell
排序算法
排序算法
50 1
|
10月前
|
搜索推荐 算法
常见排序算法实现(二)
常见排序算法实现(二)
76 0
|
搜索推荐 C++
89 C++ - 常用排序算法
89 C++ - 常用排序算法
51 0
|
搜索推荐 算法 C#
c#排序算法
c#排序算法