c语言二分查找的实现

  

二分查找也称折半查找(二分法),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。

通常在查找数组的时候,会发现一个一个查找很浪费资源,因此通过二分查找法实现,。

算法要求:

1。必须采用顺序存储结构。

2。必须按关键字大小有序排列。

首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功,否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。


 c语言二分查找的实现“> <br/> </p> <p>(上面是思维导图)</p> <pre> <代码> # include<stdio.h>
  # include & lt; windows.h>//,,,转到,递归
  
  空白digui (int商夏int, int钟,int num)
  {
  ,钟,=(夏商+)/2;
  ,,如果(夏商& lt;=)
  ,,{
  ,,,钟,如果(num==)
  ,,,,{
  ,,,,,,printf(“递归:find. % d \ n=商);      ,,printf (“==================\ n");   ,,printf (“==================\ n");   ,,printf (“==================\ n");      ,,商=0;   ,夏,=1023;   ,钟,=(夏商+)/2;   ,,num=988;   AAA://三,转到   ,钟,=(夏+商)/2;   ,钟,如果(num==)   ,,{   ,,,,printf (“goto: find. % d \ n",钟);   ,,,,转到BBB;   ,,}   ,,else if (num比;钟)   ,,{   ,,,钟,商=+ 1;   ,,,,printf (“shang. % d, zhong. % d,夏。% d \ n",商、钟、夏);   ,,}   ,其他的,   ,,{   ,,,钟,夏=- 1;   ,,,,printf (“shang. % d, zhong. % d,夏。% d \ n",商、钟、夏);   ,,}      ,,如果夏(shang<=)   ,,{   ,,,,转到AAA级;   ,,}   BBB:      ,,printf (“==================\ n");   ,,printf (“==================\ n");   ,,printf (“==================\ n");      ,,商=0;   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

c语言二分查找的实现