Java数据结构与算法之排序

排序算法

1. 排序算法的介绍

排序也称为排序算法,排序是将一组数据,依指定的顺序进行排序的过程

2. 分类

  1. 内部排序:

指将需要处理的所有数据都加载到内部存储器中进行排序。

  1. 外部排序:

数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。

  1. 常见的排序

3. 时间复杂度

3.1 时间复杂度

一般情况下,算法中的基本操作语句的重复执行次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为一不为0的常熟,则称f(n)T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n))为算法的渐进时间复杂度,简称时间复杂度。

3.2 时间复杂度计算方法

  • 用常数1代替运行时间中的加法常数
  • 修改后的运算次数函数中,只保留最高阶项
  • 去除最高阶项的系数

3.3 常见的时间复杂度

O(1)<O(log2n)<O(n)<O(nlog2n)<O(n2)<O(n3)<O(nk)<O(2n)

3.4 时间复杂度分析

常数阶O(1)

无论代码执行多少行,只要没有循环等复杂结构,那这个代码的时间复杂度就是O(1)

对数阶O(logn)

while循环里,每次都将i乘以2,每一次循环都离n越来越近,所以循环次数应该是logn

线性对数阶O(nlogn)

原文地址:https://www.cnblogs.com/njuptzheng/p/13264049.html