线型查找:把数组的每一个元素和检索关键字比较,按顺序从第一个元素一直检索到要查找的元素,平均来说,程序要把查找关键字与一半的数组元素进行比较。
二分法查找:线型查找法对小型数组和未排序的数组效果较好,但是,对于大型数据来说,线型查找法效率较低。如果已经对数组排序,那么可以使用速度很快的二分法查找.
程序1:线型查找法实现对某个数的查找!
#include<stdio.h>
#include<stdlib.h>
#define Size 100
int main()
{ int linearSearch(int a[], int key, int size);
int a[Size], i, searchKey, element;
for(i=0; i<Size; i++)
a[i]=2*i;
printf("Enter integer search key:\n");
scanf("%d",&searchKey);
element=linearSearch(a,searchKey,Size);
if(element!=-1)
printf("Found value in element %d !\n",element);
else
printf("Value is not found!\n");
system("pause");
}
int linearSearch(int array[],int key,int size)
{
int j;
for(j=0; j<Size; j++)
if(array[j]==key)
return j;
return -1;
}
程序2:二分法查找法实现对某个数的查找!
#include<stdio.h>
#include<stdlib.h>
#define Size 15
int main()
{
int binarySearch(int [], int, int, int);
void printHeader(void);
void printRow(int [],int,int,int);
int a[Size],i,key,element;
for(i=0;i <= Size-1;i++)
