我们都知道,程序=数据结构+算法。数据结构和算法是密切相关的,因为不同的数据结构配合不同的算法,会有不同的效率。排序是最常见的算法之一,功能顾名思义是将一个数据对象(即数据元素的集合)重新排列成遵循某种规则的序列。例如在构建二叉搜索树的过程中也有排序的过(插入节点过程中左子树小于其父节点,右子树大于其父结点 )程。排序是程序设计中的一种重要操作,因为对于无序的序列,进行查找操作时,我们只能用顺序查找的方法,这样平均查找长度为(n+1)/2,但是如果对有序的序列进行查找,我们可以用折半查找法,折半查找法的效率较高,平均查找长度为((n+1)/n)*log(2n+1)-1(当n很大时,可以近似看作log(2n+1)-1),时间复杂度也是O(logN),所以说,排序是很重要的一种操作。
那么什么是内部排序?内部排序指的是,待排序列能够一次全部导入到内存空间里,也就是说有足够大的内存可以一次存放所有的待排序列,然后排序的过程是可以在内存中一次完成的。
排序算法中有一个常用的概念是“稳定性”,排序算法的稳定性指的是,对于任意的两个或以上相等的数据,如果排序前后它们的相对位置不发生改变,那么我们就说这个排序算法是稳定的。假设我们要对一个学生信息数据库表