【概述】
二分查找(Binary Search),又称折半查找,其仅适用于有序的顺序表或数组,不适用于链表
其算法的基本思想是:将给定关键字 key
与表中中间位置的元素对应的关键字进行比较,中间结点由此将查找表分为两个子表,若相等,则查找成功,若不相等,根据关键字 key
与该中间结点关键字的比较结果来确定下一步查找哪一个子表,这样递归进行,直到查找成功或查找结束发现表中没有这样的结点
排序,即重新排列表中的元素,使表中元素满足按关键字有序的过程
对于待排序表中的两个元素 $R_i$ 和 $R_j$,若排序前后 $R_i$ 和 $R_j$ 的相对位置不变,则称排序算法是稳定的,否则是不稳定的,稳定与不稳定是对算法性质的描述,若待排序表中的元素唯一,则选择排序算法时稳定与否无关紧要
在排序过程中,根据数据元素是否完全在内存中,可将排序算法分为两类: