#includestdio.h#define MAX 10// array of items on which linear search will be conducted. int list[MAX] = { 10, 14, 19, 26, 27, 31, 33, 35, 42, 44 };
编程学习网为您整理以下代码实例,主要实现:C语言数据结构插值查找,希望可以帮到各位朋友。
#include<stdio.h>
#define MAX 10
// array of items on which linear search will be conducted. 
int List[MAX] = { 10, 14, 19, 26, 27, 31, 33, 35, 42, 44 };
int find(int data) {
   int lo = 0;
   int hi = MAX - 1;
   int mID = -1;
   int comparisons = 1;      
   int index = -1;
   while(lo <= hi) {
      printf("
Comparison %d  \n" , comparisons ) ;
      printf("lo : %d, List[%d] = %d\n", lo, lo, List[lo]);
      printf("hi : %d, List[%d] = %d\n", hi, hi, List[hi]);
      comparisons++;
      // probe the mID point 
      mID = lo + (((double)(hi - lo) / (List[hi] - List[lo])) * (data - List[lo]));
      printf("mID = %d\n",mID);
      // data found 
      if(List[mID] == data) {
         index = mID;
         break;
      } else {
         if(List[mID] < data) {
            // if data is larger, data is in upper half 
            lo = mID + 1;
         } else {
            // if data is smaller, data is in lower half 
            hi = mID - 1;
         }
      }               
   }
   printf("
Total comparisons made: %d", --comparisons);
   return index;
}
int main() {
   //find location of 33
   int location = find(33);
   // if element was found 
   if(location != -1)
      printf("
Element found at location: %d" ,(location+1));
   else
      printf("Element not found.");
   return 0;
}
				 沃梦达教程
				
			本文标题为:C语言数据结构插值查找
 
				
         
 
            
        基础教程推荐
             猜你喜欢
        
	     - 总计将在节日礼物上花多少钱 1970-01-01
- C++:为什么结构类需要一个虚拟方法才能成为多态? 2022-10-19
- C++多态 1970-01-01
- C语言3个整数的数组 1970-01-01
- 对 STL 容器的安全并行只读访问 2022-10-25
- 明确指定任何或所有枚举数的整数值 1970-01-01
- C语言数组 1970-01-01
- 迭代std :: bitset中真实位的有效方法? 2022-10-18
- 用指数格式表示浮点数 1970-01-01
- 向量<unique_ptr<A>>使用初始化列表 2022-10-23
 
    	 
    	 
    	 
    	 
    	 
    	 
    	 
    	 
				 
				 
				 
				