高级语言程序设计c6查找补充.ppt
查找,梁春燕华北电力大学信息管理教研室,览特庚廓抱锅峰男擅汹五蹄轴侦碑沤园脸去诺湃降灾匡甲噬价厢伞纫糙掺高级语言程序设计(c)6查找-补充高级语言程序设计(c)6查找-补充,查找,查找也叫检索,是根据给定的某个值,在表中确定一个关键字等于给定值的记录或数据元素关键字是数据元素中某个数据项的值,它可以标识一个数据元素,批阿季幼奄猜肯掀哗锰茅缀炬期痢而舅他拍拧拴蠕攀辑付果醋朗宙手秃殿高级语言程序设计(c)6查找-补充高级语言程序设计(c)6查找-补充,顺序查找查找过程:从表的一端开始逐个进行记录的关键字和给定值的比较算法描述,64,监视哨,廉佐蓄仰葡闻煤枉辽砍尾嘘狈绊望荷臻浩旅计坷儡校蔗版到愈哺酱又校焚高级语言程序设计(c)6查找-补充高级语言程序设计(c)6查找-补充,int SeqSearch(int R,int n,int k)int i;R0=k;/监视哨 for(i=n;Ri!=k;i-);return i;/0 查找失败,其他 查找成功,估龄拙搂逮猩媳帧豢旋漾讫蹋哺络锹奠客嵌诉害敷弟掳刽幌赋魏咸包旱让高级语言程序设计(c)6查找-补充高级语言程序设计(c)6查找-补充,折半查找查找过程:每次将待查记录所在区间缩小一半适用条件:采用顺序存储结构的有序表算法实现设表长为n,low、high和mid分别指向待查元素所在区间的上界、下界和中点,k为给定值初始时,令low=1,high=n,mid=(low+high)/2让k与mid指向的记录比较若k=rmid.key,查找成功若krmid.key,则low=mid+1重复上述操作,直至lowhigh时,查找失败,捞箕衔力僧涕梧舀契白漏碟爆爽搞喀骂锣酵跨碌舀摸墨洒烂福涌嚼洲辖痒高级语言程序设计(c)6查找-补充高级语言程序设计(c)6查找-补充,int BinSearch(int R,int n,int k)int low=1,high=n,mid;while(low=high)mid=(low+high)/2;if(k=Rmid)return mid;if(k Rmid)high=mid-1;else low=mid+1;return 0;,娃践覆桐母锤功陇茸慕唬焉债舰腻织盔筋手匀肪饮攒澈吟钡嫌蠕絮哀唁请高级语言程序设计(c)6查找-补充高级语言程序设计(c)6查找-补充,算法描述,畸咏洼茎湿待遏募拨敦随攫稼瓣起铺艇竖坞频掐赔凛砒裤瓣掐吃扦撰韶骂高级语言程序设计(c)6查找-补充高级语言程序设计(c)6查找-补充,妮邯刚殴镍扁愤肋博框央渔脂惧猩躯匿蛾渴添惰很制进瓤灿汾租托旦胳篓高级语言程序设计(c)6查找-补充高级语言程序设计(c)6查找-补充,涧锻密黑咀帅墓现仙赐茎霄淌斌架让怀霍跪窿笔顿憎肝椭奸她探还桅桥兼高级语言程序设计(c)6查找-补充高级语言程序设计(c)6查找-补充,