折半查找又叫二分查找,其基本思想是:在有序表中,取中间记录作为比较对象,如果查找的记录的关键码等于中间记录的关键码,则查找成功;若小于,则在左半区查找;若大于,则在右半区查找。不断重复直到查找成功,或没有要查找的记录,查找失败。
public int BinarySearch(List<int> list,int key )
{
int mid = 0;
int flag = -1;
int low = 0;
int high = list.Count;
while (low<=high)
{
mid = (low + high)/2;
if (key==list[mid])
{
flag = mid;
break;
}
if (key <= list[mid])
{
high = mid - 1;
}
else
{
low = mid + 1;
}
}
return flag;
}
构造哈希函数的常用方法:直接定址法,除留求余法,数字分析法,平方取中法
解决冲突的方法:开放地址法 链表法