索引查找

查找算法学习

巧了我就是萌 提交于 2020-03-01 21:42:39
####查找算法学习 #####顺序查找 最简单的查找方法,从线性表的一端开始,依次将每个记录的关键字进行比较,若相同则返回该关键字所在数组的位置 int SeqSearch(int A[],int n,int key){ int i ; for(i = 0;i<n;i++){ if(A[i] == key){ return i; //返回当前位置 } } return -1; } int main(int argc, const char * argv[]) { int A[10] = {1,2,3,4,5,6,7,8,9,0}; int data = SeqSearch(A,10, 0); printf("%d",data); return 0; } #####折半查找(二分查找) 折半查找要求查找表的数据是线性结构保存,并且还要求查找表的数据是按照关键字由小到大有序排列 int BinarySearch(int A[],int n,int key){ int low,high,mid; low = 0;high = n-1; while(low<=high){ mid = (low+high)/2; if(A[mid]==key){ //如果中间的值恰好等于关键字的值,则返回 return mid; }else if(A[mid]>key) //如果中间值大于关键字 high