数据结构之十大排序算法包括:
直接插入排序:
通过构建有序序列,对未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
折半插入排序:
对直接插入排序的一种改进,通过二分查找法减少比较次数,提高排序效率。
希尔排序:
又称缩小增量排序,是插入排序的一种更高效的改进版本,通过比较和交换相隔一定间隔的元素来工作。
冒泡排序:
重复遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。
快速排序:
通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
简单选择排序:
在要排序的一组数中,选出最小(或最大)的一个数与第一个位置的数交换;然后在剩下的数当中再找最小(或最大)的与第二个位置的数交换,依此类推,直到第n-1个元素和第n个元素比较为止。
堆排序:
是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子节点的键值或索引总是小于(或大于)它的父节点。
归并排序:
是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。
基数排序:
是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。
外部排序:
当待排序的记录数量很大,无法全部装入内存时,需要借助外部存储设备进行排序。外部排序一般使用归并排序的思想,先对待排序的数据进行分块,对每一块使用内部排序算法进行排序,然后将排序后的块进行归并,直到得到完全有序的序列。