查找算法
查找是指在数据序列中寻找符合特定条件的数据。
在进行查找时,主要是以要查找的数据与数据序列中的数据进行比较,如果数据不相等,则进行下一次的比较,一直找到相等的数据为止。
查找算法在实际运做过程中数据的存储方式不同,可分为“内部查找”与“外部查找”两类。
内部查找是如果待查找的数据可以全部加载到内存中在进行的查找;
外部查找是如果要查找的数据量太大,无法全部加载到内存中,必须借助辅助存储设备的空间再进行查找;
查找法可分为:线性查找法、二分查找法、插补查找法和散列查找法。
/*算法名称:线性查找法*/
int linear_search(int A[],int n,int key)
{
int i=0;
while(i<n-1)
{
if(A==key)
{
return i; //查找成功
}
else
i++;
}
return -1; //查找失败
}
/*算法名称:二分查找法*/
int binary_search(int *A,int key,int low,int upper)
{
int mid=0;
while(low<upper)
{
mid=(int)((low+upper)/2)
if(key==A[mid])
return mid; //查找成功
else if(key>A[mid])
low=mid+1;
else
upper=mid-1;
}
return -1; //查找失败
}
在进行查找时,主要是以要查找的数据与数据序列中的数据进行比较,如果数据不相等,则进行下一次的比较,一直找到相等的数据为止。
查找算法在实际运做过程中数据的存储方式不同,可分为“内部查找”与“外部查找”两类。
内部查找是如果待查找的数据可以全部加载到内存中在进行的查找;
外部查找是如果要查找的数据量太大,无法全部加载到内存中,必须借助辅助存储设备的空间再进行查找;
查找法可分为:线性查找法、二分查找法、插补查找法和散列查找法。
/*算法名称:线性查找法*/
int linear_search(int A[],int n,int key)
{
int i=0;
while(i<n-1)
{
if(A==key)
{
return i; //查找成功
}
else
i++;
}
return -1; //查找失败
}
/*算法名称:二分查找法*/
int binary_search(int *A,int key,int low,int upper)
{
int mid=0;
while(low<upper)
{
mid=(int)((low+upper)/2)
if(key==A[mid])
return mid; //查找成功
else if(key>A[mid])
low=mid+1;
else
upper=mid-1;
}
return -1; //查找失败
}