顺序查找,二分查找,插值查找,斐比那契查找,数表查找,分块查找,哈希查找。
平均查找长度(Average Search Length,ASL):需和指定key进行比较的关键字的个数的期望值,称为查找算法在查找成功时的平均查找长度
1、顺序查找
/**
平均查找长度:ASL=(1+2+3+...+n)/n=(n+1)/2;
顺序查找:时间复杂度O(n);
**/
int SequenceSearch(int a[],int value,int n){ for(int i=0;i<n;i++){ if(A[i] == value){ return i; } } return -1; }
2、二分查找
//二分查找,遍历
int BinarySearch(int a[],int value,int n){ int low,high,mid; low = 0; high = n-1; while (low<high) { mid = (low+high)/2; if(a[mid] == n){ return mid; }else if(a[mid] > n){ high = mid - 1; }else{ low = mid + 1; } } return -1; }
//二分查找,递归版本
3、插值查找
4、斐比那契查找
5、数表查找
6、分块查找
7、哈希查找