A-A+
在数轴上有N个彼此相临不交的区间 每个区间下界上界都是整数。N个区间顺序为1—N。要查找给定
问题详情
在数轴上有N个彼此相临不交的区间,每个区间下界上界都是整数。N个区间顺序为1—N。要查找给定的x落入的区间号,你认为应怎样组织数据结构?选择什么方法最快?并简述其原因。
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:按索引顺序查找分块组织数据。N个区间分块有序区间(块)内无序将块内最大关键字置于块内最后一个位置即向量下标为ik一1其中i=12…N一1k为每区间的长度(最后一个区间的最大关键字置于向量最后一个位置)。查找时若N较小可用顺序查找依次将x与r[ik-1]xkey进行比较找到合适的块以后在块内顺序查找;若N很大也可用折半查找以确定X所在块在块内顺序查找。
按索引顺序查找分块组织数据。N个区间分块有序,区间(块)内无序,将块内最大关键字置于块内最后一个位置,即向量下标为ik一1,其中i=1,2,…,N一1,k为每区间的长度(最后一个区间的最大关键字置于向量最后一个位置)。查找时,若N较小,可用顺序查找,依次将x与r[ik-1]xkey进行比较,找到合适的块以后在块内顺序查找;若N很大,也可用折半查找,以确定X所在块,在块内顺序查找。