数据结构与算法 ~ 查找 ~ 顺序查找

本文详细探讨了数据结构与算法中的查找技术,重点解析了顺序查找的原理、效率及其应用。通过实例分析,揭示了顺序查找在不同场景下的优缺点,帮助读者更好地理解和掌握这一基础算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据结构与算法 ~ 查找 ~ 顺序查找

/*search--seqlistsearch*/
#include<stdio.h>
#include<stdlib.h>
int seqlistsearch(int *list,int len,int key){
	int i,j;
	list[0]=key;
	i=len;
	while(key!=list[i]){ 
		printf("\n当前查找==:");
		for(j=1;j<=len;j++){ 
			printf("%3d",list[j]);
			if (j==(i-1)) 
				printf("(");
			if (j==i) 
				printf(")");
		}
		--i;
	}/*while*/
	return i;
}/* seqlistsearch*/

int main( ){
 int list[20];
 int len,key,e;
 int node,i=0;
 list[i]=0;
 printf ("\n请输入数值 (Exit for 0):");
 scanf("%d,",&node);
 while(node!=0&&i<20){
	 list[++i]=node;
    printf ("\n请输入数值 (Exit for 0):");
    scanf("%d,",&node);
  }/*while*/
 len=i;
 printf ("\n初始 :");
 for (i=1;i<=len;++i)  printf(" %3d,",list[i]);
 printf(" \nlen=%d",len);
 printf ("\n请输入你想查找的数值(Exit for 0):\n");
 scanf("%d",&key);
 while(key!=0){ 
   e=seqlistsearch(list,len,key);
   printf("\n你想查找的数值是:%d, 位置在:%d .",list[e],e);
   printf ("\n请输入你想查找的数值(Exit for 0):\n");
   scanf("%d",&key);
 }/*while*/
 	system("pause");
	exit(0);
}/*main*/

运行结果:


请输入数值 (Exit for 0):5

请输入数值 (Exit for 0):13

请输入数值 (Exit for 0):19

请输入数值 (Exit for 0):21

请输入数值 (Exit for 0):37

请输入数值 (Exit for 0):56

请输入数值 (Exit for 0):64

请输入数值 (Exit for 0):75

请输入数值 (Exit for 0):80

请输入数值 (Exit for 0):88

请输入数值 (Exit for 0):92

请输入数值 (Exit for 0):0

初始 :   5,  13,  19,  21,  37,  56,  64,  75,  80,  88,  92,
len=11
请输入你想查找的数值(Exit for 0):
13

当前查找==:  5 13 19 21 37 56 64 75 80 88( 92)
当前查找==:  5 13 19 21 37 56 64 75 80( 88) 92
当前查找==:  5 13 19 21 37 56 64 75( 80) 88 92
当前查找==:  5 13 19 21 37 56 64( 75) 80 88 92
当前查找==:  5 13 19 21 37 56( 64) 75 80 88 92
当前查找==:  5 13 19 21 37( 56) 64 75 80 88 92
当前查找==:  5 13 19 21( 37) 56 64 75 80 88 92
当前查找==:  5 13 19( 21) 37 56 64 75 80 88 92
当前查找==:  5 13( 19) 21 37 56 64 75 80 88 92
你想查找的数值是:13, 位置在:2 .
请输入你想查找的数值(Exit for 0):
80

当前查找==:  5 13 19 21 37 56 64 75 80 88( 92)
当前查找==:  5 13 19 21 37 56 64 75 80( 88) 92
你想查找的数值是:80, 位置在:9 .
请输入你想查找的数值(Exit for 0):

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值