#include<stdio.h>
#include<stdlib.h>
void Sort(int ST[],int len)
{
int i,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)
{
int i=0;
while( ST[i]!=key && i<n)
i++;
return i;
return -1;
}
int Search_Bin(int ST[],int key,int len)
{
int low = 0;
int high = len -1;
int mid;
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()
{ int n = 8;
int ST[8] = {100,200,300,99,66,1,50,48};
int key;
int result;
printf("顺序查找\n");
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);
int k;
for( k=0;k<n;k++)
printf("%d\n",ST[k]);
printf("折半查找\n");
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;
}
2018-05-20有序表和哈希表的查找
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...