C#查找

2020-03-03 23:07:30 来源:范文大全收藏下载本文

#include

#include/*清屏*/

#include

#define N 5

#define b 3

typedef struct

{

int key;/*关键项*/

float data;/*数据项*/

}table;

table R[N+1]; int K;

void Input()/*输入*/

{

float info;

int i,k;

for(i=0;i

{

printf(\"请输入第%d项的关键字:\\n\",i+1);

scanf(\"%d\",&k);

R[i].key=k;

printf(\"请输入第%d项的数据:\\n\",i+1);

scanf(\"%f\",&info);

R[i].data=info;

}

}

int SEQSEARCH(table R[],int K)/*在R中顺序查找关键字为K的结点,查找成功返回向量下标,失败返回-1*/

{

int i;

printf(\"请输入要查询的关键字: \");

scanf(\"%d\",&K);

R[N].key=K;/*设置高端监视哨*/

i=0;/*从表尾开始向前扫描*/

while(R[i].key!=K)

{

printf(\"查找过程第 %d 步查到的关键字为 %d \\n\",i+1,R[i].key);

i++;

}

{

printf(\"未查找到关键字为: %d 的数据\\n\",R[N].key);

return (-1);

}

else

{

printf(\"查找到的关键字数组下标为: %d数据为%.2f \\n\",i,R[i].data);

return i;

}

}/*SEQSEARCH*/

//二分查找

int BINSEARCH(table R[],int K)/*在有序表R中进行二分查找,成功返回结点的位置,失败是返回-1*/

{

int low,mid,high;

low=0;/*置查找区间的下界初值*/

high=N-1;/*置查找区间的上界初值*/

printf(\"请输入要查询的关键字: \");

scanf(\"%d\",&K);

while(low

{

mid=(low+high)/2;

if(K==R[mid].key)

{

printf(\"查找到的关键字数组下标为: %d数据为%.2f \\n\",mid,R[mid].data);return mid;/*查找成功返回*///////////输出?

}

if(K

high=mid-1;/*缩小查找区间为左子表*/

else

low=mid+1;/*缩小查找区间为左子表*/

}

printf(\"未查找到关键字为: %d 的数据%d\\n\",K,mid);

return (-1);/*查找失败*//////////提示失败?

}/*BINSEARCH*/

//分块查找

typedef struct/*索引表的结点类型*/

{

int key;

}IDtable;

IDtable ID[b];/*索引表*/

int BLKSEARCH(table R[],IDtable ID[],int K)/*分块查找,成功时函数值为关键字等于K的结点在R中的序号,失败时函数值为-1*/

{

int i,low1,low2,mid,high1,high2;

low1=0;/*置二分查找区间的下界初值*/

high1=b-1;/*置二分查找区间的上界初值*/

while(low1

{

mid=(low1+high1)/2;

if(K

high1=mid-1;

else

low1=mid+1;

}/*查找完毕,low1为找到的块号*/

if(low1b,则K大于R中所有的关键字*/

{

low2=ID[low1].addr;/*块起始地址*/

if(low1==b-1)/*求块末地址*/

high2=N-1;

else

high2=ID[low1+1].addr-1;

for(i=low2;i

if(R[i].key==K)/*查找成功*//////////输出?

return i;

}

return (-1);/*查找失败*/////////提示失败

}/*BLKSEARCH*/

void main()

{

Input();

SEQSEARCH(R,K);

BINSEARCH(R,K);

}BLKSEARCH(R,ID,K);

C#学习心得

C#总结

c#读书笔记

C#代码

C#心得体会

C#实习心得

c#基础总结

C#与.NET

C#作业参考答案

C#实习总结

《C#查找.doc》
C#查找
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
下载全文