您的位置:首页 > 其它

顺序查找和折半查找

2006-05-19 13:19 381 查看
顺序查找
typedef int DataType;

int SeqSearch(DataType List[],int n,DataType key)
{
for(int i=0;i<n;i++)
if(List[i]==key)
return i;
return -1;
}
*判断出口,找到就出来,没找到就返回没找到
O(n)

折半查找
int BinSearch(DataType list[],int low,int high,DataType key)
{
int mid;
DataType midvalue;

while(low<=high)
{
mid=(low+high)/2;
midvalue=list[mid];
if(key==midvalue)
return mid;
else if(key<midvalue)
high=mid-1;
else
low=mid+1;
}
return -1;
}
*low<=high

排序操作
void ExchangeSort(int a[],int n)
{
int i,j,temp;

for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[j]<a[i])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
*j=i+1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: