java数组查询(java-03数组查找)
java数组查询(java-03数组查找)二、分块查找5. 总结:查找的值大于中间值,则最小索引 = 中间索引;查找的值小于中间值,则最大索引 = 中间索引。2. 二分查找相当于每次去掉一半的查找范围3. 二分查找正常的检索条件应该是:开始位置min <=结束位置max4. 假设查找的值为a,找出数组中间索引对应值b,b与a对比,根据大小倾向确认下一次查找的范围是小于b的范围还是大于b的范围,然后在选定的范围中再找出中间值c,c与a再进行比较,直至找出对应a的值的索引。
#人人能科普,处处有新知#
涉及内容:二分查找、分块查找
一、二分查找
1. 二分查找性能好 二分查找的前提是必须是排好序的数据。
2. 二分查找相当于每次去掉一半的查找范围
3. 二分查找正常的检索条件应该是:开始位置min <=结束位置max
4. 假设查找的值为a,找出数组中间索引对应值b,b与a对比,根据大小倾向确认下一次查找的范围是小于b的范围还是大于b的范围,然后在选定的范围中再找出中间值c,c与a再进行比较,直至找出对应a的值的索引。
5. 总结:查找的值大于中间值,则最小索引 = 中间索引;查找的值小于中间值,则最大索引 = 中间索引。
二、分块查找
1. 即分成若干子表,要求前一个子表中最大数值小于后一个子表中的最小数值。
2. 将各子表中最大关键字构成一个索引表,表中包含每个子表的起始地址,而不一定是该关键字的地址。
3. 对索引表使用折半查找法(因为索引表有序),确定了待查关键字所在的子表后,在子表内采用顺序查找法(因为各子表内部无序)
4. 查找效率在二分查找和顺序查找之间
5. 总结:首先查找索引表 因为索引表是有序表 故可以采用二分查找或顺序查找 以确定待查记录在哪一块;然后在已确定的块中进行顺序查找(因为内无序 只能用顺序查找)。如果在块中找到该记录则查询成功 否则查找失败。