排序算法总结

简介: 经典排序算法总结

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

  • 第Ⅰ类:插入排序(后边元素依次与前边元素比较排序);
  • 第Ⅱ类:选择排序(后边元素编组,选最小与最前元素交换位置)、谢尔排序(选择排序的改进,分组的方法不同)
  • 第Ⅲ类:冒泡排序(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天前
|
搜索推荐
常见的几种排序算法
常见的几种排序算法
8 1
|
3天前
|
搜索推荐 算法 NoSQL
10-千奇百怪的排序算法
10-千奇百怪的排序算法
|
6月前
|
搜索推荐 算法
14 排序算法
14 排序算法
16 0
|
8月前
|
搜索推荐 算法 C#
c#排序算法
c#排序算法
|
11月前
|
算法 搜索推荐
排序算法的简单认识
在进行很多便捷算法之前总是要实现对象的有序化,而这就将使用到排序相关的算法,即使目前诸多高级语言已然完成对于排序算法的封装,用户只需导入对应库文件即可调用排序算法完成排序,无需手写排序算法,但具体的排序算法的选择就必须对于排序算法有所认识。本文就将介绍两个简单的排序算法:选择排序与冒泡排序。 选择排序 为什么称为选择排序? 该算法每次都是对于未排序的关键字进行比较,选择出最小或最大的关键字,再对其交换位置,实现一次排序,需进行多次比较。 选择排序法是一种不稳定的排序算法。它的工作原理是每一次从待排序的数据元
47 0
|
搜索推荐 Java
常见的10种排序算法
常见的10种排序算法
78 0
|
搜索推荐 算法
|
搜索推荐 算法 测试技术
|
搜索推荐 算法
常见的排序算法(下)
上期学习完了前四个排序,这期我们来学习剩下的三个排序:
常见的排序算法(下)
|
算法 搜索推荐 C++
一篇解决排序算法
从第一篇《算法概要》开始,到此篇已经经历了将近四个月时间,常见的基础排序已经温习完成
578 0
一篇解决排序算法