在各类算法中,排序算法是最基本的内容。现实生活中常需要将少量数据按从小到大或者者从大到小的顺序来进行排列。对于一个排序好的序列来说,查找最大值、最小值、遍历、计算和求解等操作都十分方便。因而,下面首先详情各种排序算法。
排序算法概述:
排序(Sort)是将一组数据按照肯定的规则来进行排列,一般按递增或者递减的顺序来进行排列。排序算法是一种最基本的算法。排序尽管看似是一个简单的问题,但是在实际的应用场合往往面临少量问题。往往需要寻觅一个高效的排序算法,因而便演变出了多种排序算法。
排序算法的分类,如图1所示。最基本的排序算法包括交换排序算法、选择排序算法、插入排序算法和合并排序算法。其中,交换排序主要包括冒泡排序算法和快速排序算法;选择排序算法主要包括选择排序算法和堆排序算法;插入排序主要包括插入排序算法和Shell排序算法。
上诉几种基本排序算法直接对计算机内存中的数据进行排序。而对于少量大的文件,因为计算机的内存有限,往往不能直接将其读入内存进行排序。这是可以采用多路归并排序,将文件划分为几个能够读入内存的小部分,而后分别读入进行排序,经过屡次解决就可完成大文件的排序。
每一种排序算法都有其各自的特点,往往在某些特定的场合具备比较好的执行效率。因而,需要根据实际问题的需要来正当选择排序算法。下面对排序算法进行详细的详情。
在实际应用中,基本的排序对象是整数,而基本排序规则包括从小到大排序和从大到小排序。下面主要以整型数据从小到大进行排序为例来讲解。对于其余类型的数据,或者者从大到小的排序方法相似。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ——-《Java常用算法手册》
1、排序算法的分类图