#include <iostream>
#include <string>
using namespace std;
struct ElemType {
int key;
int age;
};
struct SSTable {
ElemType *R;
int length;
};
/
//顺序查找 O(n)
int Search_Sq(SSTable s, int key) {
for (int i=s.length; i>=1; --i) {
if (s.R[i].key == key) {
return i;
}
}
return 0;
}
/
//设置监视哨的顺序查找
int Search_Seq(SSTable ST, int key){
ST.R[0].key = key;
int i=0;
for (i=ST.length; ST.R[i].key!=key; --i);
return i;
}
/
//折半查找
int Search_Bin(SSTable ST, int key) {
int low =1;
int high = ST.length;
while (low <= high) {
int mid = (low +high) /2;
if (key == ST.R[mid].key) {
return mid;
}
else if (key < ST.R[mid].key){
high = mid-1;
}
else
low = mid +1;
}
return 0;
}
///
//递归实现实现折半查找
int search(SSTable ST, int low, int high, int key) {
int mid = (low + high)/;
if (ST.R[mid].key == key) {
return mid;
}
else if (ST.R[mid].key < key) {
search(ST, mid+1, high );
}
else {
search(ST, low, mid-1);
}
return 0;
}