本文主要是介绍排序算法——宏观总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、定义
排序是将一组对象按照规定的次序重新排列的过程,是为检索服务的。
的确 ,排序是为查找服务的,如果不按照一定的次序进行排列的话,查找的效率就会降低,因此为了提高查找的效率,我们将一组对象进行排序。
二、分类
排序的算法有多种,分为内排序和外排序。
内排序:整个排序过程不需要访问外存便能完成。
外排序:整个排序过程不可能在内存中完成,处理极大量数据,这些数据不能一次性的装入内存中,只能放在外存储器上。
根据排序过程中所依据的原则内排序可以分为:插入,选择,交换,归并,基数排序。
三、基本概念
1、插入排序
就是将一个数据插入到一个有序的数据序列,从而得到一个新的、个数加一的有序数据序列。 每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。
2、选择排序
每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。
3、交换排序
就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置,将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。
4、归并排序
建立在归并操作上的一种有效的排序算法,该算法是采用分治法。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。
5、基数排序
它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用。
总结:
这篇博客仅做了一个简单的罗列总结,后面将会对每一个算法分类进行详细总结。
这篇关于排序算法——宏观总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!