1、排序算法的介绍
排序也称排序算法(SortAlgorithm),排序是将一组数据,依指定的顺序进行排列的过程。
2、排序的分类
1) 内部排序:
指将需要处理的所有数据都加载到内部存储器中进行排序。
2) 外部排序法:
数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。
3) 常见的排序算法分类(见右图):
3、 算法的时间复杂度
度量一个程序(算法)执行时间的两种方法:
1)
事
后统计的方
法
这种方法可 行 , 但 是有两个 问题 : 一是要想对设计的算法的运行性能进行评测 , 需要 实 际运 行该程序; 二是所得时间的统计量依赖于计算机的硬件、软件等环境因 素 , 这种方式,要在同一台计算机的相同状态下运行,才能比较那个算法 速 度更快 。
这种方法可 行 , 但 是有两个 问题 : 一是要想对设计的算法的运行性能进行评测 , 需要 实 际运 行该程序; 二是所得时间的统计量依赖于计算机的硬件、软件等环境因 素 , 这种方式,要在同一台计算机的相同状态下运行,才能比较那个算法 速 度更快 。
2)
事前估
算的方
法
通过分析某个算法的 时间复杂度 来判断哪个算法更优。
通过分析某个算法的 时间复杂度 来判断哪个算法更优。
时间频度:
一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。
例如:
计算1-100所有数字之和, 我们设计两种算法:
在时间频度中,对于常数项,我们用下面列子说明:
|
T(n)=2n+20 |
T(n)=2*n |
T(3n+10) |
T(3n) |
1 |
22 |
2 |
13 |
3 |
2 |
24 |
4 |
16 |
6 |
5 |
30 |
10 |
25 |
15 |
8 |
36 |
16 |