《数据结构》_6集合和搜索
集合的表示
顺序搜索
无序表的顺序搜索
适用于线性表的顺序存储结构和链式存储结构。
算法分析:
(1)搜索成功的情况下平均搜索长度:ASL=1/n ∑(i+1)=(n+1)/2
(2)搜索失败的情况下平均搜索长度为n。
有序表的顺序存储
算法分析:
(1)搜索成功的情况下:(n+1)/2
(2)搜索失败的情况下:n/2 +2
对半搜索
适用于采用顺序存储结构的有序表。
每次取的中点都是⌊(low+high)/2⌋,进行比较。
定理:对半搜索算法在成功搜索的情况下,关键字值之间的比较次数不超过⌊log2n⌋+1。对于不成功的搜索,算法需要做⌊log2n⌋+1或⌊log2n⌋次比较。
【例】有序表中有80个元素,采用对半搜索成功搜索到某个元素,则最多比较次数为⌊log280⌋+1=6+1=7次,如果搜索失败了,则为6或7次比较。
定理:对半搜索算法在搜索成功时的平均时间复杂度为O(log2n)
二叉判定树
参考博客:https://blog.csdn.net/gogokongyin/article/details/51211296
只需要记住一句话:判定树的形态只与表结点个数N有关,与具体的数值无关。