排序算法的介绍
排序也称排序算法(SortAlgorithm),排序是将一组数据, 依指定的顺序进行排列的过程。
排序的分类:
1)内部排序:
指将需要处理的所有数据都加载到内部存储器(内存)中进行排序。
2)外部排序法:
数据量过大,无法全部加载到内存中,需要借助外部存储(文件等)进行排序。
常见的排序算法分类(见右图): .
外排序:需要在内外存之间多次交换数据才能进行
内排序:
插入类排序
直接插入排序
希尔排序
选择类排序
简单选择排序
堆排序
交换类排序
冒泡排序
快速排序
归并类排序
归并排序
复杂度
1)稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;
2)不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;
3)内排序: 所有排序操作都在内存中完成;
4)外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行;
5)时间复杂度: 一个算法执行所耗费的时间。
6)空间复杂度:运行完-个程序所需内存的大小。
7)n:数据规模”
8)k:“桶’的个数
9)In-place:不占用额外内存
10) Out-place: 占用额外内存