我有一个程序不会做,请大家帮帮忙,是关于查找关键字的

来源:百度知道 编辑:UC知道 时间:2024/05/15 05:54:50
题目是查找关键字程序:有查找表{3,6,2,10,1,8,5,7,4,9}。编写一个程序,用户输入的命令有:
1、选择查找方式:a.顺序查找b.二分查找
2、输入查找的关键字
3、退出系统
要求输出比较序列

我现在给出一个大概的程序框架思路,存在则输出位置,不存在则输出0;可能主要是考二分查找,但是二分查找应该是有序的,所以输出排序后的位置,如果还有不明确的可以找我,qq号见名字处:
#include "stdio.h"
int OrderedSearch(int list[],int len,int keyword)
{
int i;
for(i=0;i<len;i++)
{
if(list[i]==keyword)
return i+1;
}
return 0;
}

int BinarySearch(int list[],int s,int e,int keyword)
{
if(e==s+1)
{
if(list[s]==keyword)
return s+1;
else if(list[e]==keyword)
return e+1;
else
return 0;
}
else
{
if(keyword>list[(s+e)/2])
BinarySearch(list,(s+e)/2,e,keyword);
else if(keyword<list[(s+e)/2])
BinarySearch(list,s,(s+e)/2,keyword);
else return (s+e)/2+1;
}
}

void main()
{
int i,j,temp;
int list[10]={3,6,2,10,1,8,5,7,4,9};
int list_b[10]={3,6,2,10,1,8,5,7,4,9};//用于调整顺序后的折半查找
int len=10;
int s=0,e=9;
int keyword;
char sta