《数据结构》_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有关,与具体的数值无关。

posted @ 2018-06-03 22:44  WittPeng  阅读(1181)  评论(0编辑  收藏  举报