c语言实现两种查找

4 篇文章 0 订阅

01#include <stdio.h>
02#include <stdlib.h>
03 
04int main()
05{
06    int L[11]={0,70,38,65,97,76,93,1,15,68,64};  //无序序列
07    int S[11]={0,10,20,30,35,40,65,67,69,84,97};//有序序列
08    printf("元素68所在L中的位置为%d ",seqSearch(L,68));
09    //printf("元素67所在S中的位置为%d ",binSearch(S,67));
10    return 0;
11}
12int seqSearch(int L[11],int key)  //顺序查找
13{
14    int i=0;
15    for(i=10;i>=0;i--)
16    {
17        if(L[i]==key)
18            return i;
19    }
20    return 0;
21}
22int binSearch(int S[11],int key) //折半查找
23{
24    int low=1,high=10,m=0;
25    while(low<=high)
26    {
27        m=(low+high)/2;   //折半
28        if(S[m]==key)
29            return m;
30        if(key<S[m])
31            high=m-1;
32        else
33            low=m+1;
34    }
35    return 0;
36}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值