2008秋-计算机软件基础- 第四章- 顺序查找,二分查找
2007-10-07 10:59
357 查看
/*---------------------------------------------------------
Title: 顺序查找
Author : Eman Lee
----------------------------------------------------------*/
#include<stdio.h>
//定义顺序存储线性表的结点结构
struct node
{
int key;//关键字
int other; //非关键字
};
int SequencSearch(struct node numbers[],int length, int value)
{
//顺序查找,在numbers[]中查找value,表长length
//成功返回位置(0~length-1),失败返回-1。
int i;
for(i=0;i<length;i++)
{
if(numbers[i].key==value)
return i;
}
return -1;
}
void main()
{
struct node s[5]={{1,80},{2,75},{3,60},{4,89},{5,100}};
int position;
position=SequencSearch(s,5,3);
//position=SequencSearch(s,5,10);
printf("position=%d\n",position);
}
/*---------------------------------------------------------
Title: 二分查找
Author : Eman Lee
----------------------------------------------------------*/
#include<stdio.h>
//定义顺序存储线性表的结点结构
struct node
{
int key;//关键字
int other; //非关键字
};
int binsearch(struct node r[],int n,int x)
/*在长度为n的升序线性表上查找关键字为x的元素*/
{ int low,high,mid;
low=1; high=n;
/*设置查找区间左、右端点的初值*/
while(low<=high) /*当查找区间非空时进行查找*/
{ mid=(low+high)/2; /*求出区间中间位置mid的值*/
if(x==r[mid].key) return(mid);
/*查找成功时返回元素所在的位置*/
else
{ if(x<r[mid].key) high=mid-1; /*缩小查找区间*/
else low=mid+1;
}
}
return(0); /*查找失败时返回0值*/
} /*binsearch*/
void main()
{
struct node s[6]={{0,0},{1,80},{2,75},{3,60},{4,89},{5,100}};
int position;
//position=binsearch(s,5,3);
position=binsearch(s,5,10);
printf("position=%d\n",position);
}
Title: 顺序查找
Author : Eman Lee
----------------------------------------------------------*/
#include<stdio.h>
//定义顺序存储线性表的结点结构
struct node
{
int key;//关键字
int other; //非关键字
};
int SequencSearch(struct node numbers[],int length, int value)
{
//顺序查找,在numbers[]中查找value,表长length
//成功返回位置(0~length-1),失败返回-1。
int i;
for(i=0;i<length;i++)
{
if(numbers[i].key==value)
return i;
}
return -1;
}
void main()
{
struct node s[5]={{1,80},{2,75},{3,60},{4,89},{5,100}};
int position;
position=SequencSearch(s,5,3);
//position=SequencSearch(s,5,10);
printf("position=%d\n",position);
}
/*---------------------------------------------------------
Title: 二分查找
Author : Eman Lee
----------------------------------------------------------*/
#include<stdio.h>
//定义顺序存储线性表的结点结构
struct node
{
int key;//关键字
int other; //非关键字
};
int binsearch(struct node r[],int n,int x)
/*在长度为n的升序线性表上查找关键字为x的元素*/
{ int low,high,mid;
low=1; high=n;
/*设置查找区间左、右端点的初值*/
while(low<=high) /*当查找区间非空时进行查找*/
{ mid=(low+high)/2; /*求出区间中间位置mid的值*/
if(x==r[mid].key) return(mid);
/*查找成功时返回元素所在的位置*/
else
{ if(x<r[mid].key) high=mid-1; /*缩小查找区间*/
else low=mid+1;
}
}
return(0); /*查找失败时返回0值*/
} /*binsearch*/
void main()
{
struct node s[6]={{0,0},{1,80},{2,75},{3,60},{4,89},{5,100}};
int position;
//position=binsearch(s,5,3);
position=binsearch(s,5,10);
printf("position=%d\n",position);
}
相关文章推荐
- 2008秋-计算机软件基础- 第四章- 分块查找,索引顺序查找
- 2008秋季-计算机软件基础-PPT课件-第四章 查找与排序
- 2008秋-计算机软件基础- 第四章- 二叉排序树中查找
- 2008秋-计算机软件基础-第四章习题参考答案 P131 ,习题6之一
- 2008秋季-计算机软件基础-线性表的顺序存储(顺序表)
- 2008秋季-计算机软件基础- 线性表顺序存储 - 菜单
- 2008秋-计算机软件基础-循环顺序队列
- 2008秋-计算机软件基础-第四章习题参考答案 P131 ,习题6之二
- 2008秋-计算机软件基础-第四章习题参考答案 P131 ,习题4,5
- 2008秋-计算机软件基础-冒泡排序
- 2008秋季-计算机软件基础-作业和实验报告注意事项
- c++ 实现顺序栈类(初始化,入栈,退栈。读栈顶元素以及顺序输出栈顶指针与栈中的元素<<计算机软件技术基础 徐士良>>
- 2008秋季-计算机软件基础- vc6 wintc 编译器
- 数据结构基础(2) --顺序查找 & 二分查找
- 2008秋季-计算机软件基础-第三章 非线性数据结构(PPT课件)
- 数据结构基础(2) --顺序查找 & 二分查找
- 2008秋-计算机软件基础-第三章习题参考答案 P111
- 2008秋季-解读大纲:计算机软件基础
- 2008秋季-计算机软件基础-C语言-精简课件
- 2008秋季-计算机软件基础-0827课堂用例