根据给定的数值在一个列表中进行查找,有两种基本方法:顺序查找和二叉查找。
1、当数据项在列表内随机排列的时候可以用顺序查找,2、而当数据项在列表内有许排列时用二叉查找(
一、1、顺序查找
最简单的方式:从列表的开始处顺序遍历每条数据,直到找到所需要的数据或到了末尾,即顺序查找
实现方式比较简单:
bool result
for (int i = 0; i < array.Length; i++)
{
if (array[i] == value)
{
result = true;
break;
}
}
return result
2、查找最小值或最大值
基本流程:选择数组第一个数为最小(大)值,遍历数组,和每一个相比,如果比最小(大)值小(大),就交换数据。直到最后一个数据。
int
result = 0;
if (最小值)
{
for (int i = 0; i < array.Length; i++)
{
result = array[0];
if (result > array[i])
{
result = array[i];
}
}
}
else
{
for (int i = 0; i < array.Length; i++)
{
result = array[0];
if (result < array[i])
{
result = array[i];
}
}
}
return result;
3、自组织数据
当要查找的数据元素就在数据集合的开始处时会产生最快的查找,通过把找到的数据项移动到开始处可以提高查找速度。就是把频繁查找的数据项法国能在数据集合开始处的方法使查询次数最少。
因为要查找的数据大概会遵循“80-20”规则,即在数据集合上的80%的查找都是为了找到20%的数据。服从帕累托分布。