数据结构折半查找(二分法查找) - 爱问答

(爱问答)

数据结构折半查找(二分法查找)

对有19个数据的有序表进行折半查找,画出其判定树并计算平均查找长度。 


/*

File Name: Binary Search

Data Time:

Anthor:

*/  

#include <stdio.h>  

#include <stdlib.h>  

 

#define MAX 21  

 

typedef struct element  

{  

   int key;  

}record;  

 

record data[AMX] = {  

   2, 5, 7, 9, 17, 21, 25,  

   33, 46,89,100, 121, 127, 139,  

   237, 279, 302, 356, 455, 467, 500};  

 

//  

int binary_find(int key, int low, int high)  

{  

   int mid;  

 

   if(low == high)  

   {  

       if(data[low].key == key)  

           return low;  

       else  

           return -1;  

   }  

   else  

   {  

       mid = (low + high) / 2;  

       if(mid == low);  

           mid++;  

       if(key < data[mid].key)  

           return binary_find(key, low, mid - 1);  

       else  

           return binary_find(key, mid, high);  

   }  

}  

//Binary Search  

int binary_search(int key)  

{  

   return binary_find(key, 0, MAX - 1);  

}  

 

int main(int argc, char** argv)  

{  

   int found;  

   int value;  

 

   while(1)  

   {  

       printf(" 请输入查找值(0-500) ==> ");  

       scanf("%d", &value);  

       if(value != -1)  

       {  

           found = binary_search(value);  

           if(found != -1)  

           {  

               printf("找到查找值: %d[%d] ", value, found);  

           }  

           else  

           {  

               printf("没有哦找到查找值: %d ", value);  

           }  

       }  

       else  

           exit(1);  

   }  

 

   system("pause");  

   return 0;  

}  


下一篇:想换台新电脑,现在应该买什么牌子的啊,求讲。。。

上一篇:帮我修改一下程序,谢谢

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?