查找一:C++静态查找
1 #include<iostream> 2 using namespace std; 3 #define MAXSIZE 100 4 5 int Seq_Search(int *a, int n, int key) 6 { 7 int i; 8 for(i=0; i<n;i++) 9 { 10 if(a[i]==key) 11 return i; 12 } 13 return 0; 14 } 15 16 //折半查找 17 int In_Search(int *a, int n, int key) 18 { 19 int low, high, mid; 20 low = 0; 21 high = n-1; 22 while(low<high) 23 { 24 mid = (low+high)/2; 25 if(a[mid]>key) 26 { 27 high--; 28 } 29 else if(a[mid]<key) 30 { 31 low++; 32 } 33 else 34 return mid; 35 } 36 return 0; 37 } 38 39 //插值查找 40 int Insert_Search(int *a, int n, int key) 41 { 42 int low, high, mid; 43 low = 0; 44 high = n-1; 45 while(low<high) 46 { 47 //插值 48 mid = low + (high-low)*(key-a[low])/(a[high]-a[low]); 49 if(a[mid]>key) 50 { 51 high--; 52 } 53 else if(a[mid]<key) 54 { 55 low++; 56 } 57 else 58 return mid; 59 } 60 return 0; 61 } 62 63 //斐波那契数列 64 void Fibonacci(int *F) 65 { 66 F[0] = 0; 67 F[1] = 1; 68 for(int i=2;i<MAXSIZE;i++) 69 { 70 F[i] = F[i-1] + F[i-2]; 71 } 72 } 73 74 //斐波那契查找 75 int Fibonacci_Search(int *a, int n, int key) 76 { 77 int low = 0; 78 int high = n-1; 79 int mid; 80 int F[MAXSIZE]; 81 Fibonacci(F); 82 int k =0; 83 while(n>F[k]-1) 84 k++; 85 int *temp = new int[F[k]-1]; 86 memcpy(temp,a,n*sizeof(int)); 87 for(int i=n;i<F[k]-1;i++) 88 temp[i] = a[n-1]; 89 90 while(low<high) 91 { 92 mid = low + F[k-1] - 1; 93 if(key<temp[mid]) 94 { 95 high = mid-11; 96 k = k-1; 97 } 98 else if(key>temp[mid]) 99 { 100 low = mid+1; 101 k = k-2; 102 } 103 else 104 { 105 if(mid<n) 106 return mid; 107 else 108 return n-1; 109 } 110 } 111 delete[] temp; 112 return -1; 113 } 114 115 int main() 116 { 117 int a[MAXSIZE]; 118 for(int i=0;i<MAXSIZE;i++) 119 a[i] = i+1; 120 cout << Seq_Search(a,MAXSIZE,45)<<endl; 121 cout << In_Search(a,MAXSIZE,45)<<endl; 122 cout << Insert_Search(a,MAXSIZE,45)<<endl; 123 124 int arr[] = {0,16,24,35,47,59,62,73,88,99}; 125 int key=73; 126 int index=Fibonacci_Search(arr,sizeof(arr)/sizeof(int),key); 127 cout<<key<<" is located at: "<<index; 128 129 system("PAUSE"); 130 return 0; 131 }
转载于:https://www.cnblogs.com/jx-yangbo/p/4858058.html
查找一:C++静态查找相关推荐
- 数据结构:静态查找动态查找
概念 1.静态查找 首先无论是静态查找还是动态查找,都要有查找的对象,也就是包含很多同类型数据的"表",这个"表"可以理解为一个由同类型数据元素组成的一个&qu ...
- c语言指针的折半法查找,数据结构笔记7:折半查找法(二分查找法)及C语言实现...
折半查找,也称二分查找,在某些情况下相比于顺序查找,使用折半查找算法的效率更高.但是该算法的使用的前提是静态查找表中的数据必须是有序的. 折半查找算法 对静态查找表{5,13,19,21,37,56, ...
- 数据结构:在下述几种树中,()可以表示静态查找表?
题目 在下述几种树中,()可以表示静态查找表? A. 次优查找树 B. 二叉排序树 C. B-树 D. 平衡二叉树 解答 答案:A 静态查找表(Static Search Table):只作查找操作的 ...
- 数据结构 查找 静态查找表算法 折半查找 二叉排序树查找算法 实验报告
实验内容: 基本内容: 算法1:采用顺序存储结构创建静态查找表,对查找表进行顺序查找和改进的顺序查找,并对其查找效率进行比较: 算法2:采用顺序存储结构创建静态查找表--有序表,对有序表进行二分查找: ...
- 静态树表查找算法及C语言实现,数据结构算法C语言实现(三十二)--- 9.1静态查找表...
一.简述 静态查找表又分为顺序表.有序表.静态树表和索引表.以下只是算法的简单实现及测试,不涉及性能分析. 二.头文件 /** author:zhaoyu date:2016-7-12 */ #inc ...
- 14.查找概论与顺序查找
一.查找概论 1.查找:即依据给定的某个值,在查找表中确定一个其keyword等于给定值的数据元素(或纪录).若表中不存在keyword等于给定值的纪录.则称查找不成功,此时查找的结果可给出一个&qu ...
- 数据结构——查找:折半查找、二叉查找(排序)树、平衡二叉树
七大查找算法:https://www.cnblogs.com/zhang-qc/p/8745153.html 学习的地址 https://www.bilibili.com/video/av278314 ...
- python中顺序查找法例子_Python查找算法(一)------ 顺序查找
查找算法 -- 简介 查找(Searching)就是根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素. 查找表(Search Table):由用一类型的数据元素构成的集合 关健字( ...
- 查找算法:二分查找、顺序查找
08年9月入学,12年7月毕业,结束了我在软件学院愉快丰富的大学生活.此系列是对四年专业课程学习的回顾,索引参见:http://blog.csdn.net/xiaowei_cqu/article/de ...
- python 查找算法_七大查找算法(Python)
查找算法 -- 简介 查找(Searching)就是根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素. 查找表(Search Table):由同一类型的数据元素构成的集合 关键字(Ke ...
最新文章
- H01-P1201-0.6B金升阳高压模块
- LeetCode Evaluate Division(并查集)
- SAP Customer Data Cloud(Gigya)的用户搜索实现
- IntelliJ IDEA maven库下载依赖包速度慢的问题(包制百病)
- hdu5455(2015沈阳网络赛F题)
- sellhis股票平面图
- java模糊查询比对方法_Java多条件和模糊查询
- gunicorn部署Flask服务
- [dp]最长单调递增子序列LIS
- Linux中对进程的管理
- java序列化层数_java序列化详解
- python小程序代码_Python解题记录第19题
- adb工具构成及原理
- 软件测试和调试的区别
- 元气骑士超级科学计算机有什么用,元气骑士超级科学计算机攻略 天赋及获取方式汇总...
- 如何将py文件转化为exe
- 微信读书中总显示服务器错误,微信读书充值遇到问题怎么办 微信读书充值遇到问题解决方法...
- php页面导出csv,使用PHP生成并导出CSV文件
- 简书PC端私密文章放在哪?
- reshape 与 shape
热门文章
- python环境下载_Python for Windows 64位下载
- nvidia TX2 CUDA yolov5环境搭建
- php画图教程,php画图实例_PHP
- 403 forbidden nginx_linux搭建nginx服务
- 【kafka】Number of insync replicas for partition __transaction_state-4 is below required minimum
- 【clickhouse】创建物化视图数据来源是两张表该怎么写创建语句呢?
- 95-18-015-配置-AbstractBootstrapConfig
- spark学习-64-源代码:schedulerBackend和taskScheduler的创建(2)-StandLone
- 【Hadoop】HDFS Short Circuit Local Reads(HDFS短路读取)
- Spring : Spring @Transactional-嵌套事物处理