急~~请高手帮忙~~谢谢
数据结构的 1、编写折半查找算法函数。
该函数接收的参数:一个一维有序数组,和一个给定需要的查找值。(注意传递数组实际上已需要2个参数)
函数功能:根据给定值,找出该值在数组中的位置(即下标),如果找不到,返回-1。
要求:使用折半查找算法去实现。查找完成时,输出共比较了多少次。
2、完成main函数。
1)创建一个一维整数数组,里面放20个按降序排列的整数。
2)调用第1步编写的函数,查找给定的整数在数组中的位置并输出,如果找不到输出“找不到”。
最好能用上以为这些内容,谢谢~~
#include <iostream>
using namespace std;
typedef struct
{
ElemType *Elem;
int length;
}SSTable
int Search_Bin ( SSTable ST, KeyType kval ) {
low = 1; high = ST.length; // 置区间初值
while (low <= high) {
mid = (low + high) / 2;
if (kval == ST.elem[mid].key )
return mid; // 找到待查元素
else if ( kval < ST.elem[mid].key) )
high = mid - 1; // 继续在前半区间进行查找
else low = mid + 1; // 继续在后半区间进行查找
}
return 0; // 顺序表中不存在待查元素
} // Search_Bin
int main()
{
int a[13]={20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};
int Search_Bin (ST, kval )
cin>>ST;
cin>>kual;
}