#include<iostream>
#include<vector>
using namespace std;
typedef struct{
int length;
vector<elem> e;
}SStable;
typedef struct{
int key;
}elem;
//无序表上的顺序查找
int unSq_search(SStable ST,int key){
int i = ST.length;
//设置监视哨
ST.e[0].key = key;
while(ST.e[i].key!=key) i--;
return i;
}
//有序表上的顺序查找
int Sq_search(SStable ST,int key){
//查找成功返回元素所在位置下标,否则返回0
int i =ST.length;
ST.e[0].key = key;
while(ST.e[i].key>key) i--;
if(key==ST.e[i].key)
return i;
return 0;
}
//有序表上的二分查找
int binarySearch(SStable ST,int key){
//查找成功返回元素所在位置下标,否则返回0
int low = 0,high = ST.length-1;
while(low <=high){
int mid = (low+high)/2;
if(ST.e[mid].key==key)
return mid;
else if(key<ST.e[mid].key)
high = mid-1;
else
low = mid+1;
}
return 0;
}
C语言数据结构笔记——查找算法
最新推荐文章于 2023-12-26 22:29:23 发布