基本的查找算法有:顺序查找,二分查找,
顺序查找很简答,就是遍历数组的每一个元素,通过与待查找到数进行比较来实现,一个for循环即可搞定。
顺序查找不需要对数组进行排序,缺点是执行效率低,耗时,因为要遍历。
二分查找是一个提高查找效率的方法,前提是数组有序,如果拿到一个无需的数组,首先要用排序算法(冒泡、选择、插入)来排序。
二分查找的利用的是二分法,即将数组有一分为二,一半一半的缩小对比范围。
二分法代码实现:
class Test
{
public static void Main()
{
int[] number=new int[]{11,22,33,44,55,66,77,88,99};
int sValue=33;
int index;
index=Dichotomy(number,sValue);
Console.WriteLine("{0}", index);
}
public static int Dichotomy(int[] num,int sValue)
{
int upper=num.Length()-1;
int lower=0;
int mid= (upper+lower)/2;
while( lower<=upper)
{
if(num[mid]==sValue)
{
return mid; //存在返回下标
}
if(num[mid]>sValue)
{
upper=mid-1;
}
if(num[mid]<sValue)
{
lower=mid+1;
}
return -1;//不存在返回-1
}
}
}