排序总结-时间复杂度和空间复杂度

原创 2016年08月31日 16:01:13

排序(Sorting)问题是我们再业务开发中遇到的最基本问题,因此成为各大IT公司招聘笔试面试必考内容之一。笔者也借着校园招聘对数据结构这一章节的复习对排序问题进行一个简单的总结,然后基于Java进行实现。

排序分类

  • 排序

    • 插入排序

      • 直接插入排序
      • 折半插入排序
      • 表插入排序
      • 希尔排序
    • 交换排序

      • 冒泡排序
      • 快速排序
    • 选择排序

      • 直接选择排序
      • 堆排序
      • 归并排序

排序时间复杂度和空间复杂度

类别 平均时间 最坏时间 辅助空间
直接插入排序
O(n2)
O(n2)
O(1)
直接选择
O(n2)
O(n2)
O(1)
快速排序
O(nlog2n)
O(n2)
O(log2n)
堆排序
O(log2n)
O(log2n)
O(1)
归并排序
O(nlog2n)
O(nlog2n)
O(n)
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

各种排序算法的java实现及时间、空间复杂度、稳定程度总结

最近闲着没事,就随便看了看数据结构,看到各种排序算法时,突然心血来潮,就想,以前都是用C++实现的,能不能用java实现所有的排序算法呢?而且顺便练习一下递归的使用(因为我最不擅长使用的就是递归) ...

各种排序算法的时间/空间复杂度稳定性

原文链接1,感谢原作者 1.冒泡排序:n*n。 俩个for循环决定其时间复杂度为n^2 template class T> void Swap(T A[], int i, in...

各种排序的时间、空间复杂度

排序算法 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 分类 在计算机科学所使用的排序算法通常被分类为: 计算的复杂度(最差、平均、和最好表...
  • B_zhang
  • B_zhang
  • 2011年09月09日 10:25
  • 925

如何实现在O(n)时间内排序,并且空间复杂度为O(1)

如何实现在O(n)时间内排序,并且空间复杂度为O(1)

排序 时间空间复杂度稳定性分析

1.    选择排序:不稳定,时间复杂度为O(n^2) 选择排序的基本思想是对待排序的记录序列进行n-1遍的处理,第i遍处理是将L[i..n]中最小者与L[i]交换位置。这样,经过i遍处理之后,前i...

各种排序的时间空间复杂度稳定性

.     选择排序:不稳定,时间复杂度为O(n^2) 选择排序的基本思想是对待排序的记录序列进行n-1遍的处理,第i遍处理是将L[i..n]中最小者与L[i]交换位置。这样,经过i遍处理之后,前...

常用排序(稳定性、时间/空间复杂度)

一、稳定性 排序算法的稳定性通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。 稳定性的好处。排序算法如果是稳定的,那么从一个键上排序,然后再从另一个键...

常用的数据结构操作与排序算法的时间和空间复杂度

大家好!这篇文章包含了计算机科学中常用算法的时间和空间复杂度。过去准备技术面试的时候,我通常需要花费很多时间去网上搜索这些算法的最好、平均和最坏情况的复杂度,然后把它们归纳总结在一起,使得我在面试问到...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:排序总结-时间复杂度和空间复杂度
举报原因:
原因补充:

(最多只允许输入30个字)