#include<stdio.h>
#include<stdlib.h>
void Sort(int ST[],int len)
{
inti,j,index,min,temp;
for(i=0;i<len;i++)
{
min= ST[i];
for(j=i;j<len;j++)
if(ST[j]<min)
{
min = ST[j];
index = j;
}
temp = ST[i];
ST[i] = ST[index];
ST[index] = temp;
}
}
int Search_Seq(int ST[],int key,int n)
{
inti=0;
while(ST[i]!=key && i<n)
i++;
return i;
return-1;
}
int Search_Bin(int ST[],int key,int len)
{
intlow = 0;
inthigh = len -1;
intmid;
while(low<=high)
{
mid = (low+high)/2;
if( key < ST[mid] )
high = mid - 1;
else if( key > ST[mid] )
low = mid + 1;
else
return mid;
}
return -1;
}
int main()
{ intn = 8;
intST[8] = {49,38,65,97,76,13,27,49};
intkey;
intresult;
printf("顺序查找,输入要查找的关键字:\n");
scanf("%d",&key);
result = Search_Seq(ST,key,n);
if(result!=-1)
printf("顺序查找成功,是第%d个。\n",result);
else
printf("查找失败\n");
printf("对顺序表进行排序:\n");
Sort(ST,n);
intk;
for( k=0;k<n;k++)
printf("%d\n",ST[k]);
printf("折半查找,输入要查找的关键字:\n");
scanf("%d",&key);
result = Search_Bin(ST,key,n);
if(result!=-1)
printf("折半查找成功,是第%d个。\n",result);
else
printf("查找失败\n");
system("pause");
return 0;
}