数据结构之十大排序算法是那些

103 阅读2分钟

数据结构之十大排序算法包括:

直接插入排序:

通过构建有序序列,对未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。

折半插入排序:

对直接插入排序的一种改进,通过二分查找法减少比较次数,提高排序效率。

希尔排序:

又称缩小增量排序,是插入排序的一种更高效的改进版本,通过比较和交换相隔一定间隔的元素来工作。

冒泡排序:

重复遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。

快速排序:

通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

简单选择排序:

在要排序的一组数中,选出最小(或最大)的一个数与第一个位置的数交换;然后在剩下的数当中再找最小(或最大)的与第二个位置的数交换,依此类推,直到第n-1个元素和第n个元素比较为止。

堆排序:

是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子节点的键值或索引总是小于(或大于)它的父节点。

归并排序:

是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。

基数排序:

是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。

外部排序:

当待排序的记录数量很大,无法全部装入内存时,需要借助外部存储设备进行排序。外部排序一般使用归并排序的思想,先对待排序的数据进行分块,对每一块使用内部排序算法进行排序,然后将排序后的块进行归并,直到得到完全有序的序列。