#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有序表和哈希表的查找
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。