查找方法
来源:互联网 发布:轩辕剑四极进阶数据 编辑:程序博客网 时间:2024/06/14 05:49
#include<iostream>using namespace std;int main(){int SX_Find(int array[],int n,int k); //折顺序查找int BinSearch1(int array[],int n,int k);//非递归算法int BinSearch2(int array[], int low, int high, int k);//递归算法int *array,n,k,i1,i2,i3,i;cout<<"数组的长度为:";cin>>n;cout<<"要查找的数为:";cin>>k;array=new int [n];cout<<"输入数组中的数值:";for(i=0;i<n;i++)cin>>array[i];i1=SX_Find(array,n,k);i2=BinSearch1(array,n,k);i3=BinSearch2(array,0,n-1,k);if(i==0)cout<<"该数不存在!"<<endl;elsecout<<"该数在数组中的下标为:"<<i1<<" "<<i2<<" "<<i3<<endl;return 0;}int SX_Find(int array[],int n,int k) { int i; array[0]=k; i=n; while(array[i]!=k) i--; return i;}int BinSearch1(int array[],int n,int k)//非递归算法{ int low=0,high=n-1,mid; while (low<=high) { mid=(low+high)/2; if (k<array[mid]) high=mid-1; else if (k>array[mid]) low=mid+1; else return mid; } return 0;}int BinSearch2(int array[], int low, int high, int k)//递归算法{ int mid; if (low>high) return 0; else { mid=(low+high)/2; if (k<array[mid]) return BinSearch2(array, low, mid-1, k); else if (k>array[mid]) return BinSearch2(array, mid+1, high, k); else return mid; } }
- 查找方法----二分查找
- 查找方法
- 查找方法
- 查找方法
- 排序及查找方法
- 查找BADI的方法
- Treeview查找节点方法
- 查找联系人 FindMatchingContact 方法
- 数据结构,查找方法总结
- 查找BADI的方法
- XML 查找节点方法。
- 排序及查找方法
- Ascii查找方法
- Ubuntu 查找软件包方法
- EXC_BAD_ACCESS的查找方法
- 数组查找方法
- oracle 查找错误方法!
- Treeview查找节点方法
- zoj1006-Do the Untwist
- 九九乘法表
- printk显示问题补充
- 输出1,2,3,4,5分别乘以10,100,1000的结果
- 理解编译器的编译模板过程
- 查找方法
- smarty-缓存(局部不缓存)
- 数组中的元素进行查找,打印出需求的元素
- 我们是农村的孩子,没有资格堕落【转】
- TCP三次握手过程与对应的Berkeley Socket APIs的介绍
- Mahout数据承载
- 使用ffplay播放USB设备时的频道选择
- 主板实例,接口的应用
- 典型的 C++ 程序员成长经历