直接插入排序:
说明:逐个将待排序的元素插入到已排序的序列中,直到全部元素插入完成。 举例:[4, 2, 3, 1] 排序后为 [1, 2, 3, 4]。
折半插入排序:
说明:在直接插入排序的基础上,使用二分查找减少比较次数。 举例:同上。
希尔排序:
说明:通过比较相距一定间隔的元素来工作,逐步减少间隔,最后进行直接插入排序。 举例:[9, 8, 3, 7, 5, 6, 4, 1] 排序后可能为 [1, 3, 4, 5, 6, 7, 8, 9]。
冒泡排序
:
说明:通过重复遍历要排序的数列,比较相邻元素并交换,直到没有元素需要交换。
举例:[5, 1, 4, 2, 8] 排序后为 [1, 2, 4, 5, 8]。 快速排序:
说明:通过一趟排序将待排序的数据分割成独立的两部分,然后递归地对这两部分进行快速排序。 举例:[3, 6, 8, 10, 1, 2, 1] 排序后可能为 [1, 1, 2, 3, 6, 8, 10]。
简单选择排序:
说明:在待排序序列中找到最小(或最大)元素,放到序列的起始位置,然后再从剩余未排序元素中继续寻找最小(或最大)元素,放到已排序序列的末尾。 举例:[64, 25, 12, 22, 11] 排序后为 [11, 12, 22, 25, 64]。
堆排序:
说明:利用堆这种数据结构所设计的一种排序算法,堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子节点的键值或索引总是小于(或大于)它的父节点。
举例:[12, 11, 13, 5, 6, 7] 排序后可能为 [5, 6, 7, 11, 12, 13]。 归并排序:
说明:是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 举例:同上。
基数排序:
说明:是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。 举例:[170, 45, 75, 90, 802, 24, 2, 66] 排序后为 [2, 24, 45, 66, 75, 90, 170, 802]。
外部排序:
说明:当待排序的记录数量很大,无法全部装入内存时,需要借助外部存储设备进行排序。外部排序一般使用归并排序的思想,先对待排序的数据进行分块,对每一块使用内部排序算法进行排序,然后将排序后的块进行归并,直到得到完全有序的序列。 举例:涉及大量数据,无法直接给出简单示例。