无序列表的查找
在一个有8个int数据的数组中,随机给出数组的数据,找出最大和第二大元素一定需要进行(9)次比较:
-
分块查找
分块查找表,块间有序,块内无序。是二分查找和顺序查找的一种改进方法。 -
二分查找【要求能够随机访问数组元素】
对顺序表进行二分查找,需要是有序的顺序表。【顺序表只是说明数据存储是有序的,但是并不代表存储的值是有序的。】
有序数组1 2 3 4 5 6 7 8 9查找3的二分查找序列是:5->2->3 【中间下标的计算:(0+3)/2=1,为2的下标】
二分查找,可以用二叉判定树,查找不成功的次数不超过判定树的深度,而树的深度为|log2n|+1
二分查找首先要求数据是有序的,同时要求能随机访问数组元素, 有序数组可以, 链表不行,
二分查找因为每次都是从中间点开始查找,所以最坏情况是目标元素存在于最边缘的情况。最坏为O(LogN)
使用二分查找,表必须有序,且表只能以顺序方式存储
折半查找
顺序查找