数据结构实验五:查找

复制代码
查找——实现监视哨法查找

#include<stdio.h>
#include<stdlib.h>
int cmp(const void *a,const void *b)
{
    return *(int *)a-*(int *)b;
}
int main()
{
    int a[101],i;
    for(i=1;i<=100;i++)
        a[i]=rand()%100;
    for(i=1;i<=100;i++)
        printf("%d ",a[i]);
    printf("\n");
    int key;
    scanf("%d",&key);
    printf("顺序查找\n");
    a[0]=key;
    for(i=100;i>=0;i--)
        if(a[i]==key){
                printf("%d\n",i);
                break;
                }
    qsort(&a[1],100,sizeof(int),cmp);
    for(i=1;i<=100;i++)
        printf("%d ",a[i]);
    printf("\n");
    printf("折半查找\n");
    int mid,start=1,end=100;
    mid=(start+end)/2;
    while(start<=end)
    {
        if(a[mid]==key){
            printf("%d\n",mid);
            break;
        }
        if(a[mid]>key){
            end=mid-1;
            mid=(end+start)/2;
        }
        else{
            start=mid+1;
            mid=(start+end)/2;
        }
    }
    printf("end\n");
}
复制代码

posted on   ma6174  阅读(485)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架

导航

统计

点击右上角即可分享
微信分享提示